多个异步等待Angular中的observable

时间:2018-03-27 18:02:54

标签: angular asynchronous concurrency

我在项目中打了一些电话来收集我需要处理并向用户显示的数据。

我们说我有Geolocate电话,GetProvinces电话,ReverseGeocode电话,最后我需要编写一些代码来处理数据。

现在问题是:GeolocateGetProvinces是独立的,而ReverseGeocode依赖于Geolocate数据,最后一位代码依赖于数据来自GetProvincesReverseGeocode

enter image description here

我做的第一件事是嵌套电话(Geolocate - > ReverseGeocode - > GetProvinces - >处理数据)但是这样做会浪费太多时间一直在打电话。

调查我发现了forkJoin我可以使GeolocateGetProvinces调用同时运行,但后来我必须等到最慢才完成可以进行ReverseGeocode调用并最终处理数据,当我Geolocate得到回复时,我希望它能够发生,我不知道哪个会花费最长时间时间。

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

编辑:应该提到我试图不嵌套电话。

1 个答案:

答案 0 :(得分:2)

Geolocate 反向地理编码加入一个独特的可观察对象,例如使用切换图,并使用 GetProvinces

进行forkJoin

我建议使用缓存服务example