等到每个函数(jQuery)结束

Ron*_*onZ 0 ajax each jquery

我有这个:

$.each(.., function() {
    $(this).destroy() // call ajax
});
Run Code Online (Sandbox Code Playgroud)

我想确保每个函数都已完成,并且ajax调用也是如此.无论如何要做到这一点?我尝试过$.when功能,效果不佳.

ajax调用不是直接的,有一个函数让我成为一个ajax进程.所以我需要在$ .ajax命令之外验证.

Dar*_*rov 6

你可以使用一个承诺:

var requests = [];
$.each(..., function() {
    var promise = $.ajax(...);
    requests.push(promise); 
});

$.when.apply($, requests).done(function() {
    // all AJAX requests completed here
}).fail(function() {
    // will be called if any AJAX request failed
});
Run Code Online (Sandbox Code Playgroud)

这就是说,我个人会避免在循环中进行许多类似的AJAX调用.制作一个大的AJAX调用而不是许多小调用会更有效率.