等待 return 在 angular 中观察到的两种方法

Awaiting for two methods that return observables in angular

我有两种方法可以进行 api 调用和 return 观察。

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 完成所有请求以便继续,但我不知道如何在 angular 中实现它 8. 任何提示?

您可能正在查看一个名为 flattening observables 的术语 - 具有嵌套的 observables。 (除非你只关心最后的反应 - forkJoin

您有多种运算符可以帮助您实现所需。这里只是其中的一部分。看一看,您会发现它们中哪些最适用于您的代码。

switchMap - 具有抵消效果。

mergeMap - "This operator is best used when you wish to flatten an inner observable but want to manually control the number of inner subscriptions."

forkJoin - "This operator is best used when you have a group of observables and only care about the final emitted value of each."