2016-11-21 48 views
-1

我有这样的代码重复Ajax请求:如何根据返回

.on('finish.countdown', function() { 
        var onEndAuction = function() { 
         $.ajax({ 
          type: "POST", 
          url: "{{path('app_auction_end')}}", 
          data: {auctionId:{{ aReturn.oAuction.getId()}}}, 
          success: function (data) { 
           console.log(data); 
           if (data == 0) { 
            setTimeout(onEndAuction, i_timer); 
           } else { 
            document.location.reload(true); 
           } 
          } 
         }); 
        }; 
       }); 

我想如果数据== 0需要作出app_auction_end另一个呼叫10秒后。你能帮我吗 ? THX提前对不起我的英语

+0

你几乎在那里,只需要调用onEndAuction,做'varEndAuction ='什么都不做......所以在你的函数结束后有 - >'}; onEndAuction(); ' – Keith

+0

@Keith对不起,我不承认主意:( –

+0

好吧,我会做一个答案.. – Keith

回答

1

给操作命名函数:

var someFunction = function() { 
    $.ajax({ 
     //... 
    }); 
}; 

,你会再使用您的.on()电话:

.on('finish.countdown', someFunction) 

而在success处理程序中,设置该功能超时:

if (data == 0) { 
    setTimeout(someFunction, i_timer); 
} 
+0

我编辑了这个问题,但不工作 –

+0

@HareaCosticla:由于您在另一个函数的范围中定义了函数,你实际上并不是首先调用函数,要么在窗口范围内定义它,并将它用作本答案中建议的'.on()'的回调函数,或者在定义时调用'onEndAuction'函数它(从长远来看,前者似乎更容易理解)。 – David

0
.on('finish.countdown', function() { 
    var onEndAuction = function() { 
    $.ajax({ 
     type: "POST", 
     url: "{{path('app_auction_end')}}", 
     data: {auctionId:{{ aReturn.oAuction.getId()}}}, 
     success: function (data) { 
     console.log(data); 
     if (data == 0) { 
      setTimeout(onEndAuction, i_timer); 
     } else { 
      document.location.reload(true); 
     } 
     } 
    }); 
    }; 
    //do our initial call otherwise it will never get called. 
    onEndAuction(); 
}); 
相关问题