通过JQuery从循环进行同步Ajax调用

时间:2015-09-09 14:53:52

标签: javascript jquery ajax

我的代码中有下面的循环,每次迭代调用一个函数,其中有一个Ajax调用。

我正在尝试找到一种方法,只有在前一次迭代完成后才能运行每次迭代。

到目前为止,正如您所看到的,我已将延迟用作临时解决方案。

有没有一种巧妙的方法让它同步?

谢谢!

$.each(matchIds, function(key,val){
        setTimeout(function(){
            gettingEvents(key, val,userID);
        },delay);
        delay+=1700;

    });

1 个答案:

答案 0 :(得分:3)

如果它们确实是同步的,那么只需不使用setTimeout 即可完成任务。

false

然而,这是一种可怕的方法,它会在所有请求运行时占用JS事件循环。请改用异步请求。在成功处理程序内迭代而不是在 $ionicModal.fromTemplateUrl('templates/login.html', { scope: $scope, hardwareBackButtonClose: false }) 循环中。

$.each(matchIds, function(key,val){
    gettingEvents(key, val,userID);
});