【发布时间】:2018-03-27 18:02:54
【问题描述】:
我要在我的项目中进行一些调用,以收集我需要处理并显示给用户的数据。
假设我有一个Geolocate 调用、一个GetProvinces 调用、一个ReverseGeocode 调用,最后我需要编写一些代码来处理数据。
现在事情是这样的:Geolocate 和 GetProvinces 是独立的,而 ReverseGeocode 依赖于 Geolocate 数据,最后一段代码依赖于来自 GetProvinces 和 ReverseGeocode 的数据。
我做的第一件事是嵌套调用(Geolocate -> ReverseGeocode -> GetProvinces -> 处理数据)但是当我本可以同时进行各种调用时,这浪费了太多时间.
调查后我发现forkJoin 可以让Geolocate 和GetProvinces 调用同时运行,但是我必须等待它们中最慢的一个完成,然后才能调用ReverseGeocode调用并最终处理数据,当我希望在Geolocate 得到响应时立即进行处理,我不知道哪个会花费最长时间。
使用 Observables,考虑到这些限制,有没有办法安排这些异步调用,这样我就不会浪费时间?
编辑:应该提到我试图不嵌套调用。
【问题讨论】:
标签: angular asynchronous concurrency