我有一个 Controller ,它通过两个单独的 http 调用加载数据的不同属性。一个过于简化的例子是这样的:
- 国家/地区类别,具有名称、官方语言和人口属性
- 一项服务 (A) 返回国家/地区及其语言
- 另一项返回国家及其人口的服务 (B)
- 假设 B 中返回的国家/地区集是 A 中返回的国家/地区的子集,并且我提前不知道其中任何一个集
- 我希望最终得到一组 Country 对象 - A 返回的所有国家/地区及其人口集(基于 B 返回的数据)
如果调用是同步的,我只需执行以下操作:
- call service A and store Objects in a map keyed by Country name
- call service B, iterate over results: if a result in is the previous map, then update its population field
但是我当然不能这样做,因为对服务 B 的调用可能会先返回,所以 map 是空的。
我尝试通过“$broadcast”/“$on”功能使用 promise ,但这并不能一致工作,因为两个调用都是异步的(我在 B 完成时广播,并尝试将结果应用于 A,但有时A还没有完成)。
我应该在这里做什么?
最佳答案
关于javascript - 我应该如何处理 AngularJS 中的两个异步调用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22845568/