JavaScript顺序异步函数调用
我有一个函数数组,可以异步生成一些逻辑(例如ajax调用)。函数看起来如何,它将从数组中顺序调用函数JavaScript顺序异步函数调用,javascript,ajax,asynchronous,promise,jquery-deferred,Javascript,Ajax,Asynchronous,Promise,Jquery Deferred,我有一个函数数组,可以异步生成一些逻辑(例如ajax调用)。函数看起来如何,它将从数组中顺序调用函数 var saveHandlers = []; saveHandlers.push(function () { var deferred = $.Deferred(); setTimeout(function() { deferred.resolve(); }, 2000); return deferred.promise(); }); saveHand
var saveHandlers = [];
saveHandlers.push(function () {
var deferred = $.Deferred();
setTimeout(function() {
deferred.resolve();
}, 2000);
return deferred.promise();
});
saveHandlers.push(function () {
var deferred = $.Deferred();
setTimeout(function() {
deferred.resolve();
}, 2000);
return deferred.promise();
});
$(function () {
var $form = $('#form');
$form
.unbind('submit')
.submit(function (e) {
if (saveHandlers.length > 0) {
$.when.apply(null, saveHandlers);
}
e.preventDefault();
});
});
编写一个调用异步函数并将数组索引作为参数的函数 在异步函数的回调中,递增索引,然后(如果尚未到达数组末尾)使用新索引递归调用函数
var foo = [fun_a, fun_b, fun_c];
function bar(index) {
index = index || 0;
function callback() {
if (foo[++index]) {
bar(index);
}
};
foo[index]().then(callback);
}
请阅读并向我们展示您的尝试。所以我们可以从这里开始讨论这个问题。@Archer让我们假设一个数组由承诺组成,但它的长度是动态的。主函数是什么样子?@Andrea我加了一个例子。