2个http调用完成后,角度调用函数

时间:2019-03-27 09:35:25

标签: angular function http

我正在使用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

   }

谢谢!

2 个答案:

答案 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();
})