我正在使用angular4,我想要实现的是在2或3次调用完成后调用一个函数。
示例:
this.Get.firstGet().subscribe( data=> {
this.test();
});
this.Get.secondGet().subscribe( data=> {
this.test();
});
test(){
//do something when firstGet and secondGet are both finished
}
谢谢!
答案 0 :(得分:1)
您可以使用words.txt
中的combineLatest
等待所有内部可观测对象至少发射一次
RxJS
或者您也可以使用import { combineLatest } from 'rxjs';
...
combineLatest(
this.Get.firstGet(),
this.Get.secondGet()
)
.subscribe(([responseOfFirst, responseOfSecond]) => {
this.test();
})
:https://www.learnrxjs.io/operators/combination/forkjoin.html
答案 1 :(得分:0)
您将分别在每个this.test();
中调用subscribe()
,因此根据您的代码,您将调用两次。
我相信您想要的是forkJoin,这只会在所有Observables解析完毕后执行成功的错误块
forkJoin(this.Get.firstGet(), this.Get.secondGet()).subscribe(([firstGet, secondGet]) => {
this.test();
})