我在项目中打了一些电话来收集我需要处理并向用户显示的数据。
我们说我有Geolocate
电话,GetProvinces
电话,ReverseGeocode
电话,最后我需要编写一些代码来处理数据。
现在问题是:Geolocate
和GetProvinces
是独立的,而ReverseGeocode
依赖于Geolocate
数据,最后一位代码依赖于数据来自GetProvinces
和ReverseGeocode
。
我做的第一件事是嵌套电话(Geolocate
- > ReverseGeocode
- > GetProvinces
- >处理数据)但是这样做会浪费太多时间一直在打电话。
调查我发现了forkJoin我可以使Geolocate
和GetProvinces
调用同时运行,但后来我必须等到最慢才完成可以进行ReverseGeocode
调用并最终处理数据,当我Geolocate
得到回复时,我希望它能够发生,我不知道哪个会花费最长时间时间。
使用Observables,有没有办法安排这些异步调用,这样我就不会浪费时间,考虑到这些限制?
编辑:应该提到我试图不嵌套电话。答案 0 :(得分:2)
将 Geolocate 和反向地理编码加入一个独特的可观察对象,例如使用切换图,并使用 GetProvinces
进行forkJoin我建议使用缓存服务example