所有ajax调用完成后需要访问变量

时间:2014-02-05 14:42:01

标签: ajax jsonp

我在循环中设置了一个ajax调用。

 while (true) {


            doAjax("GET", "api", "jsonp");

            if (startDate.valueOf() == endDate.valueOf()) {

                break;
            }

            startDate.setDate(new Date(startDate.getDate() + 1));
        }

ajax函数定义为

function doAjax(methodType, url, responseDataType) {

    var options = {
        type: methodType,
        url: url,
        dataType: responseDataType,

    };

    $.ajax(options).done(function (data) {

        postData.push(data);

    }).fail(function (response) {
        console.log(response);
    });
};

目前,当所有成功通话完成后,我终于有一个数组'postData',其中包含所有通话的结果。

现在我想知道在所有ajax调用get完成之后如何访问该变量。正如你可以看到循环中发生的一切,我怎么能弄清楚最后的ajax调用是什么时候。

有什么建议吗?

1 个答案:

答案 0 :(得分:0)

除了处理成功(完成)或错误(失败)之外,无法知道异步调用何时完成。因此,而不是在doAjax()函数内部处理done()/ fail(),只需返回一个promise:

return $.ajax(options); //remove the done() and fail() code

然后在调用doAjax函数的函数中处理done()和fail()。

doAjax("GET", "api", "jsonp").done(...).fail(...);