【问题标题】:Multiple async waits for observables in AngularAngular中的多个异步等待可观察对象
【发布时间】:2018-03-27 18:02:54
【问题描述】:

我要在我的项目中进行一些调用,以收集我需要处理并显示给用户的数据。

假设我有一个Geolocate 调用、一个GetProvinces 调用、一个ReverseGeocode 调用,最后我需要编写一些代码来处理数据。

现在事情是这样的:GeolocateGetProvinces 是独立的,而 ReverseGeocode 依赖于 Geolocate 数据,最后一段代码依赖于来自 GetProvincesReverseGeocode 的数据。

我做的第一件事是嵌套调用(Geolocate -> ReverseGeocode -> GetProvinces -> 处理数据)但是当我本可以同时进行各种调用时,这浪费了太多时间.

调查后我发现forkJoin 可以让GeolocateGetProvinces 调用同时运行,但是我必须等待它们中最慢的一个完成,然后才能调用ReverseGeocode调用并最终处理数据,当我希望在Geolocate 得到响应时立即进行处理,我不知道哪个会花费最长时间。

使用 Observables,考虑到这些限制,有没有办法安排这些异步调用,这样我就不会浪费时间?

编辑:应该提到我试图不嵌套调用。

【问题讨论】:

    标签: angular asynchronous concurrency


    【解决方案1】:

    GeolocateReverse Geocode 加入一个唯一的 observable,例如使用 switch map 并使用 GetProvinces

    进行 forkJoin

    我建议有一个缓存服务,example

    【讨论】:

      猜你喜欢
      • 2022-08-19
      • 2019-02-25
      • 2019-03-25
      • 1970-01-01
      • 2020-08-10
      • 1970-01-01
      • 2012-05-04
      • 2012-07-27
      • 1970-01-01
      相关资源
      最近更新 更多