如何知道getJSON()请求的集合何时完成?

时间:2016-02-19 16:03:06

标签: javascript jquery ajax

如何知道所有这些请求何时完成?

$.each(data.response.docs, function(i, item) {
    $.getJSON("jsp/informations.jsp?id=" + item.id, {}, function(data) {..});
});

1 个答案:

答案 0 :(得分:4)

你可以在每个请求完成时维护一个计数器,但这有点丑陋和不优雅。相反,您可以使用$.getJSON将从map()返回的延迟对象放入数组中。然后,您可以将数组应用于$.when。像这样:

var requests = $.map(data.response.docs, function(i, item) {
    return $.getJSON('jsp/informations.jsp', { id: item.id }, function(data) {
        // ...
    });
}).get();

$.when.apply(requests).done(function() {
    // all requests complete...
});