Jquery 如何检测循环中的最后一个ajax调用?

Jquery 如何检测循环中的最后一个ajax调用?,jquery,ajax,loops,Jquery,Ajax,Loops,我在循环中有一个ajax调用,我想检测上次在循环中触发ajax调用的时间: for ( var i = 0; i < diff.length ; i++ ) { ...some more code... var isLastElement = e == diff.length -1; $.ajax({ method:'POST', data: { }, url:'somepath',

我在循环中有一个ajax调用,我想检测上次在循环中触发ajax调用的时间:

for ( var i = 0; i < diff.length ; i++ ) {

   ...some more code...
   var isLastElement = e == diff.length -1;

     $.ajax({
        method:'POST',
        data: {
        },
        url:'somepath',
        success : function (data) {
            if (isLastElement) {
              alert('last item');
            }

        }
      });
 }
for(变量i=0;i

控制台中没有警报,但也没有错误。

我假设这里有输入错误,
e
应该是
I

var isLastElement = e == diff.length -1;
但是无论如何,不要使用循环索引。如果使用在循环外声明的变量,您将省去很多麻烦。。。并在ajax回调中增加该变量的值

var callCount = 0

for ( var i = 0; i < diff.length ; i++ ) {

     $.ajax({
        method:'POST',
        data: {
        },
        url:'somepath',
        success : function (data) {
        
            if (callCount==diff.length-1) {
              alert('last item');
            }
          
            callCount++
        }
      });
 }
var callCount=0
对于(变量i=0;i

请注意,请求是异步的。。。而且也不能保证会按顺序收到回复。因此,“最后一个”将是花费最长时间的…

我不确定我是否理解了这个问题。但您可能想使用。好吧,
islasteElement
将在ajax请求完成之前更改。除此之外,考虑使用回调来捕获Ajax错误。