我有以下参数:
a = [{param:'a'}, {param:'b'}, {param:'c'}]
我想为每个参数发出一个获取请求,如下所示:
a.map(function(ai){return $.get('myapi/get?ai='+ai.param)})
一旦所有的获取请求都完成了,我该怎么做?
我尝试过使用 $.when,如下所示:
$.when(
a.map(function(ai){return $.get('myapi/get?ai='+ai)})
)
.done(function(results){
results.forEach(function(ri, i){
ri.success(function(result){
a[i].result = result
}
}
do_something_with(a)
}
不幸的是,我显然误解了这个$.when().done()
成语,因为当我打电话时do_something_with(a)
我没有新的.result
属性。我猜这是因为when
看到一个数组,所以直接进入.done()
,而不是等待每个组件get
完成。
任何帮助,将不胜感激!