最近、可変数の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()
がそれぞれに接続された複数のsでどのように正確に機能するかpromise.then()
、そして最後done()
にpromise自体に接続されたものの説明を探しています。約束(私が理解していることから、特別な種類の延期されたもの自体が)を実行でき、それから延期されたもの自体も実行できるということですか?ループに含まれていなかった場合、この構文は、たとえば3つの連続したajaxリクエストに対してどのようになりますか?頭を悩ませようとしているだけです。ありがとう!