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?