我的问题比较直接。
我有一个等待返回的延迟数组,代码是这样的:
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 进程?
最佳答案
尝试返回第二个 promise 。原来的 promise 现在将使用包装的第二个 ajax promise 。
function getOneResult(params){
return $.ajax({
url: myOtherURL,
data: params
}).then(function() {
return $.ajax({
url: myURL,
data: arguments
});
});
}
关于javascript - 在另一个 AJAX 调用后延迟返回,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26538074/