我的代码中有下面的循环,每次迭代调用一个函数,其中有一个Ajax调用。
我正在尝试找到一种方法,只有在前一次迭代完成后才能运行每次迭代。
到目前为止,正如您所看到的,我已将延迟用作临时解决方案。
有没有一种巧妙的方法让它同步?
谢谢!
$.each(matchIds, function(key,val){
setTimeout(function(){
gettingEvents(key, val,userID);
},delay);
delay+=1700;
});
答案 0 :(得分:3)
如果它们确实是同步的,那么只需不使用setTimeout 即可完成任务。
false
然而,这是一种可怕的方法,它会在所有请求运行时占用JS事件循环。请改用异步请求。在成功处理程序内迭代而不是在 $ionicModal.fromTemplateUrl('templates/login.html', {
scope: $scope,
hardwareBackButtonClose: false
})
循环中。
$.each(matchIds, function(key,val){
gettingEvents(key, val,userID);
});