最近,我询问了如何触发不同数量的jQuery get()
请求,然后我收到了这段代码作为一个非常高效且可行的解决方案:
var d = new $.Deferred();
var promise = d.promise();
var results = [];
for (var i = 0; i < 5; i++) {
(function(i) {
promise = promise.then(function() {
return $.ajax('/echo/json/', {
data: {
json: JSON.stringify({foo: i})
}
}).done(function(data) {
results[i] = data;
});
});
}(i));
}
promise.done(function() {
console.log(results);
});
d.resolve();
我正在寻找关于这个多个
done()
附加到每个promise.then()
,然后再附加到承诺本身的最终done()
如何工作的解释。是否一个承诺(据我所知是一种特殊类型的延迟)可以有一个done,而延迟本身也可以有一个done?如果它不在循环中,那么连续进行三个ajax请求的语法会是什么样子?只是试图理解一下。谢谢!
apply
是怎么回事。它是如何被使用的?作为第一个参数的$
是什么意思?谢谢。 - 1252748null
用作第一个参数:$.when.apply(null, dfdArr).done(function () { for (response in arguments) { html_str += arguments[response][0];
- 1252748arguments
是从哪里来的?是什么生成了它? - 1252748