0

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

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 中实现它。有什么提示吗?

4

1 回答 1

1

您可能正在查看一个称为扁平化可观察对象的术语- 具有嵌套的可观察对象。(除非你只关心最终的回应—— forkJoin

您有各种各样的运营商可以帮助您实现您的需求。这里只是其中的一部分。看一看,你会发现它们中的哪一个最适合你的代码。

switchMap - 具有取消效果。

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

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

于 2019-07-26T17:04:01.103 回答