我的问题相对简单。
我有一个等待返回的延迟数组,代码是这样的:
var deferreds = [];
for(var i = 0; i < 5; i==){
deferreds.push(getOneResult(params));
}
var deferreds = [];
for(var i = 0; i < 5; i==){
deferreds.push(getOneResult(params));
}
“getOneResult”函数如下所示:
function getOneResult(params){
return $.ajax({
url: myURL,
data: params
});
}
它工作正常,直到有一天我决定让“getOneResult”函数执行另一个ajax进程,然后使用这个ajax进程的结果来获得结果,所以现在我的问题代码看起来像这样:
function getOneResult(params){
$.ajax({
url: myOtherURL,
data: params,
success: function(){
var result = arguments;
return $.ajax({
url: myURL,
data: arguments
});
}
});
}
然后突然间,“deferreds”数组中的所有项都变为“undefined”。我确定我所做的事情听起来不对,但是在我返回延期之前我是否仍然运行ajax进程?
答案 0 :(得分:3)
尝试返回第二个承诺。最初的承诺现在将使用包装的第二个ajax承诺。
function getOneResult(params){
return $.ajax({
url: myOtherURL,
data: params
}).then(function() {
return $.ajax({
url: myURL,
data: arguments
});
});
}