等待两种返回可观察角度的方法

时间:2019-07-26 16:51:15

标签: angular rxjs angular8 rxjs-observables

我有两种方法可以进行api调用并返回可观察值。

private method1(): Observable<Home> {
  return homeService.call.get();
}

private method2(): Observable<User> {
  return userService.call.get();
}

然后我有以下两种方法:

private method3(): void {
  this.method1().subscribe();
  this.method2().subscribe();
}

最后一个

private method4(): void {
 // does things
 this.method3();
}

我希望method4等待method3完成所有请求后才能继续,但是我不知道如何在角度8中实现它。有什么提示吗?

1 个答案:

答案 0 :(得分:1)

您可能正在看一个叫做展平可观察物的术语-具有嵌套的可观察物。 (除非您只关心最终答复-forkJoin

您拥有各种各样的运营商,可以帮助您实现所需的目标。这里只是其中一些。查看一下,您将看到其中的哪一种以最佳方式适用于您的代码。

switchMap-具有取消效果。

mergeMap-“当您希望展平内部可观察的但想要手动控制内部订阅的数量时,最好使用此运算符。”

forkJoin-“当您有一组可观察对象并且仅关心每个对象的最终发射值时,最好使用此运算符。”