2017-03-17 5 views
0

Iは観測を順次

@Component({ 
}) 
export class MyComponent { 
    observable1$; 
    observable1$; 

    ngOnInit() { 
    Observable1$ = this.service.getObservable1(); 
    Observable2$ = this.service.getObservable2(); 
    } 
} 

I練習二つの特性を有する成分を有する、observable2$observable1$fooを放出した後にのみbarを放出します。

これをシミュレートするテストを作成するにはどうすればよいですか?私は私のスペック私のコンポーネントよりも

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

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

で書く場合

observable1$observable2$を順次emitingされることはありません...

にはどうすればobservable2$が私の仕様でobservable1後に放出することができますか?

答えて

1

あなたがswitchMap()を使用することができます秒で使用するために最初から結果が必要な場合:

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

、彼らが使用forkJoin()に到着したときにだけ、それぞれの結果をしたい場合:

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