Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angular/31.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Angular 模拟连续发射的两个可见光_Angular_Jasmine_Rxjs_Reactive Programming - Fatal编程技术网

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'