使用jQuery http://api.jquery.com/jQuery.when/中的Deferred模式,我尝试进行多个jsonp ajax调用并等待结果,然后再转到下一步.我可以使用固定数量的调用来完成此操作,因为我可以在".done()"延迟对象中设置已解析参数的数量.但是在我的应用程序中它不起作用,因为调用的数量是动态的并且总是未知的.

第一个简化示例有效,因为我可以设置.done()已解析函数中的args数.我知道我需要两个,因为.when()中有两个调用:

$.when( $.ajax( url1 ), $.ajax( url2 ) ).done(function( a1, a2 ) {

var data = a1[ 0 ] + a2[ 0 ];

});

这是我需要但却无法使用它:

var urls = GetUrlList(); // returns array of urls to json service

var requests = []; // hold ajax request

for (i = 0; i < urls.length; i++) {

requests.push($.ajax(url[i]));

}

$.when.apply($, requests).done(function ("what goes here?") {

// Need to get the data returned from all ajax calls here

});

感谢您的帮助!

Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐