2017-03-17 29 views
0

我有一個具有兩個屬性是可觀察模擬2個可觀察依次冒落

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

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

我實踐的組分,observable2$將發射barobservable1$發射foo之後。

我該如何編寫一個模擬此測試的測試?

如果我在規範

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

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

比我的組件,observable1$observable2$不會被陸續寫冒落...

我怎麼能在我的規格observable1observable2$發出?

回答

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'