[英]use a callback function before a .done() function in ajax call promises
這是我要實現的示意圖:
function loadLotsofSomething() {
for (var i=0;i<1000;i++) {
results.push(loadOneSomething(i))
}
$.when.apply(this,results).done(function() {
for (var i = 0; i < arguments.length; i++) {
//get doSomehting(data) instead of data here
}
}
}
function loadOneSomething(i) {
return $.ajax({
async : true,
url: url,
success: function(data){
return doSomething(data);
}
});
}
function doSomething (x) {
return x;
}
我希望success
函數在done
函數之前執行,因為在循環所有調用之前修改從ajax調用獲取的數據更簡單。
就我而言,無論我將什么放入success
函數中,我總是在done
函數中獲取原始數據。
任何幫助歡迎!
您想使用鏈接 (就像promise一樣)。 根本不要使用success
; 而是使用then
並返回其結果:
function loadOneSomething(i) {
return $.ajax({
async : true,
url: url
}).then(function(data){
return doSomething(data);
});
}
這樣, loadOneSomething
返回的loadOneSomething
是loadOneSomething
起的then
,而不是$.ajax
那個,並且它的解析值是您then
返回的。
更多: $.ajax
的jqXHR條目 , deferred.then
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.