【发布时间】:2023-03-30 05:30:02
【问题描述】:
我有 Angular 应用程序,其中 API 调用(R2、R3..)应该使用某些标头调用。但是此标头的数据是从另一个服务调用 (R1) 中获取的。所以我们必须阻止其他请求,直到 R1 完成。
【问题讨论】:
-
利用
async和await功能
标签: angular typescript
我有 Angular 应用程序,其中 API 调用(R2、R3..)应该使用某些标头调用。但是此标头的数据是从另一个服务调用 (R1) 中获取的。所以我们必须阻止其他请求,直到 R1 完成。
【问题讨论】:
async和await功能
标签: angular typescript
在这种情况下可以使用 RxJs Observer。当响应来自 R1 时,应调用 R2 和 R3。因此,请在某处订阅观察者,如果标头出现,则在响应时调用 R2 和 R3。从 R1 响应调用observer.next。
【讨论】:
我会这样做:
R1 必须执行一次并将 next 多播给它的所有观察者(R2、R3、...),并且 BehaviourSubject 将最后一个 next() 重播给需要通知的每个订阅者
如果您的所有请求都符合此要求(所有 R 请求都依赖于这些标头),那么(当然)将 HttpInterceptor 与 BehaviourSubject 结合使用会更实际。 您还可以考虑使用您将要创建的请求扩展 httpClient 和管道 R1。一切都取决于您的项目要求
希望对你有帮助
【讨论】: