首页 > 解决方案 > 如何等待 Angular 中不同组件的可观察解析

问题描述

我有一个关于 observables 的问题。

假设我有一个带有可观察对象的服务,并且我有两个不同的组件订阅该可观察对象。Observable 本身执行后端查询。

目前我有一个问题,即使用相同的输入,单独组件中的两个可观察对象都发送具有相同输入参数的独立网络请求。

有没有办法做到这一点,如果这两个 observable 调用是在其中一个执行时调用的,第二个将等待第一个完成并使用该结果?

我目前正在使用 httpClient 和 angular 5

欢迎任何建议或设计模式:)

标签: angularasynchronousangular-httpclient

解决方案


请使用服务作为单身人士。这可以通过在根模块的提供者列表中配置服务来完成。

在服务中,有一个 observable 作为变量。

从两个组件调用相同的服务方法。

服务方法应该检查是否已经设置了可观察变量。如果设置,则返回变量。如果未设置,则调用 httpclient 函数并将结果分配给 observable 变量,并返回相同的值。

我希望这个逻辑应该有效。


推荐阅读