我有剩余的API ulrs数组(将近50个),它们返回相同类型的数据。现在我想进行并行Ajax Get调用并等待所有调用完成,以便在i之后绑定数据从所有Ajax调用中成功获取数据
var results = [];
$.each(arrayPageUrls, function () {
Utility.GetDataPromise(this, function (data) {
console.log(data);
results.push(data);
}, function (error) {});
});
$.when.apply($, results)
.then(function () {
$.each(arguments, function () {
console.log(this[0]);
});
})
GetDataPromise: function (apiurl, success, failure) {
//var deferred = $.Deferred();
$.ajax({
url: apiurl,
method: "GET",
headers: {
"Accept": "application/json; odata=verbose"
},
success: function (data) {
success(data);
},
error: function (error) {
failure(error); // deferred.reject(err);
// error handler code goes here
}
});
// return deferred;
}
我无法将async
的值设置为false,因为一个接一个地执行将花费大量时间。我希望可以使用Promise
来实现这一目标,但不了解它。
谁能帮我实现我的功能。