处理循环内的回调

时间:2015-05-28 04:07:23

标签: ajax json loops jqxhr

我需要在循环中进行n AJAX调用并将结果存储在数组中。当所有请求都完成,并且数组中已经返回了返回的JSON数据时,我想循环遍历它以进行检查。

这里有两个问题:

1)如何在jqxhr之外提供$.each

2)jqxhr如何知道循环何时完成调用complete?我只想在循环中的所有AJAX调用完成后调用complete promise。

    $.each(jsonFilesArray, function (i, jsonQuestID) {
        var jqxhr = $.getJSON("dialog/quest_"+jsonQuestID+".json", function(json) {
            vocabJSONArray.push(json);
        }).done(function () {
            log("done");
        }).fail(function () {
            log("error");
        }).always(function() {
            log("complete");
        });
    });

    jqxhr.complete(function () {
        //loop through vocabJSONArray
    });

1 个答案:

答案 0 :(得分:0)

我想我可以将请求包装在一个闭包中,以确保我的循环值始终是我所期望的,然后在我的[pjax]承诺中运行循环。寻找更好的解决方案。

always