jquery ajax.then,jQuery动态AJAX Promise链
小編典典
解決方案使用for:
var array = ['One', 'Two', 'Three'];
var id = array[0];
var data = getData(id);
for (var i = 1; i < array.length; i++) {
// Or only the last "i" will be used
(function (i) {
data = data.then(function() {
return getData(array[i]);
});
}(i));
}
// Also, see how better the getData can be.
function getData(id) {
return $.ajax({
url: 'http://example.com/' + id,
dataType: 'jsonp',
}).done(function(d) {
var response = d;
console.log(d);
}).fail(function() {
alert('ERROR');
});
}
順便說一句,如果您使用了一個適當的Promise庫,例如bluebird,則將使用以下代碼:
var array = ['One', 'Two', 'Three'];
Promise.reduce(array, function(data, id) {
return data.promise.then(function(result) {
return { promise: getData(id), results: data.results.push(result) };
});
}, []).then(function(data) {
console.log(data.results); // yay!
});
function getData(id) {
return Promise.cast($.ajax({
url: 'http://example.com/' + id,
dataType: 'jsonp',
}).done(function(d) {
var response = d;
console.log(d);
}).fail(function() {
alert('ERROR');
}));
}
如您所見,讀/寫方式更容易。
2020-07-26
總結
以上是生活随笔為你收集整理的jquery ajax.then,jQuery动态AJAX Promise链的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: jquery ajax下拉联动,基于jQ
- 下一篇: 《楚乔传》燕洵母亲和皇帝的关系揭秘 两人