Untitled
unknown
typescript
2 years ago
1.2 kB
5
Indexable
import { Component, OnInit } from '@angular/core'; import { ServerService } from './service/service/server.service'; import { Observable, map, of, startWith, delay } from 'rxjs'; import { catchError } from 'rxjs/operators'; import { AppState } from './interface/app-state'; import { CustomResponse } from './interface/custom-response'; import { DataState } from './enum/data-state-enum'; @Component({ selector: 'app-root', templateUrl: './app.component.html', styleUrls: ['./app.component.css'] }) export class AppComponent implements OnInit { appState$!: Observable<AppState<CustomResponse>>; readonly DataState = DataState; constructor(private serverService: ServerService) { } ngOnInit(): void { this.appState$ = this.serverService.servers$ .pipe( delay(10000), map(response => { return { dataState: DataState.LOADED_STATE, appData: response } }), startWith({ dataState: DataState.LOADING_STATE }), catchError((error:String) => { return of({ dataState: DataState.ERROR_STATE, error}) }) ); // Debugging: Log emitted values to the console this.appState$.subscribe(appState => console.log('appState:', appState.dataState)); } }
Editor is loading...