que navigationend example ejemplo change angular jasmine rxjs reactive-programming

angular - navigationend - simulando dos observables emitiendo sucesivamente



router events angular 6 (1)

Si necesita el resultado del primero para usar en el segundo, puede usar switchMap() :

Observable.of(''foo'').switchMap(foo => Observable.of(foo + ''bar'')) .subscribe(res => console.log(res)) // ''foobar''

Si solo quieres resultados de cada uno cuando lleguen, utiliza forkJoin() :

Observable.forkJoin( Observable.of(''foo''), Observable.of(''bar'')) .subscribe(res => console.log(res)) // ''foo'', ''bar''

Tengo un componente que tiene dos propiedades que son observables

@Component({ }) export class MyComponent { observable1$; observable1$; ngOnInit() { Observable1$ = this.service.getObservable1(); Observable2$ = this.service.getObservable2(); } }

Practico, observable2$ emitirá bar solo después de observable1$ emite foo .

¿Cómo puedo escribir una prueba que simule esto?

Si escribo en mi especificación

mockService.getObservable1.and.returnValue(Observable.of(''foo'')) mockService.getObservable2.and.returnValue(Observable.of(''bar''))

que en mi componente, observable1$ y observable2$ no emitirán sucesivamente ...

¿Cómo puedo tener observable2$ emitir después de observable1 en mi especificación?