我有一个在循环中多次调用异步函数的函数。
function myFunc() {
var things = [1, 2, 3, 4, 5];
$.each(things, asyncFunc);
alert('Things ' + things.join() + ' have all been processed.');
}
function asyncFunc(key, value) {
$.post('api.php', value: thing);
}
我想只在所有异步调用完成后继续。
我可以让asyncFunc
返回一个延迟对象,并在.resolve()
方法中调用$.post.done
,但是如何阻止.each
循环并仅在asyncFunc
已完成?
只有在完成对asyncFunc
的所有通话后,还有哪些方法可以继续?
答案 0 :(得分:2)
asyncFunc
things.length
e.g。回调
var count = things.length,
callback = function () {
if (0<--count) return;
// do stuff
};