我有一个具有两个可观察属性的组件
@Component({
})
export class MyComponent {
observable1$;
observable1$;
ngOnInit() {
Observable1$ = this.service.getObservable1();
Observable2$ = this.service.getObservable2();
}
}
我练习,observable2$
仅在bar
发出observable1$
后才会发出foo
。
我如何编写模拟此项的测试?
如果我在我的规范中写下
mockService.getObservable1.and.returnValue(Observable.of('foo'))
mockService.getObservable2.and.returnValue(Observable.of('bar'))
比我的组件中observable1$
和observable2$
不会连续发出......
如何在我的规范observable2$
之后observable1
发出?
答案 0 :(得分: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'