等待 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."
我有两种方法可以进行 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."