Angular 模拟连续发射的两个可见光
我有一个组件,它有两个可以观察到的属性Angular 模拟连续发射的两个可见光,angular,jasmine,rxjs,reactive-programming,Angular,Jasmine,Rxjs,Reactive Programming,我有一个组件,它有两个可以观察到的属性 @Component({ }) export class MyComponent { observable1$; observable1$; ngOnInit() { Observable1$ = this.service.getObservable1(); Observable2$ = this.service.getObservable2(); } } 我的实践是,observed2$只有在observed1$发出f
@Component({
})
export class MyComponent {
observable1$;
observable1$;
ngOnInit() {
Observable1$ = this.service.getObservable1();
Observable2$ = this.service.getObservable2();
}
}
我的实践是,observed2$
只有在observed1$
发出foo
之后才会发出bar
我如何编写一个模拟这种情况的测试
如果我写在我的规格
mockService.getObservable1.and.returnValue(Observable.of('foo'))
mockService.getObservable2.and.returnValue(Observable.of('bar'))
在我的组件中,observablee1$
和observablee2$
将不会连续发射
在我的规范中,如何在
observed1
之后发出observed2$
如果您需要第一个结果在第二个中使用,您可以使用switchMap()
:
如果您只想在每个结果到达时获得它们,请使用:
Observable.of('foo').switchMap(foo => Observable.of(foo + 'bar'))
.subscribe(res => console.log(res)) // 'foobar'
Observable.forkJoin( Observable.of('foo'), Observable.of('bar'))
.subscribe(res => console.log(res)) // 'foo', 'bar'