不知道该怎么办。

假设我有一个JavaScript方法可以进行一些AJAX调用:

function makeAJAXCalls()
{
    // who knows how long this will take
}

而且我不希望在所有AJAX调用完成之前执行下一个功能。我也不想将下一个函数调用放入AJAX调用的成功回调中。

有没有一种方法可以让我将它们链接起来,因此在makeAJAXCalls()完成所有它需要做的事情之前,不会调用下一个函数吗?

最佳答案

var queueCount =0;
function makeAjaxCalls()
{
    queueCount+=7; // or however many calls you need to make.
    // make your ajax calls. onSuccess (or failure), call checkQueue();
}
function checkQueue()
{
    queueCount--;
    if (queueCount <=0)
    {
       doNext();
    }
}

这使调用保持异步,这可能是此处的意图。

09-07 19:25