使用下划线延迟javascript中的函数执行

时间:2015-11-28 16:02:07

标签: javascript jquery ajax underscore.js q

使用的库:Qunderscore

这是我的代码中的以下场景。

pollEngine : _.throttle(function() {
   return that.fetchStatus()
         .then(function(data) {
             if(data) {
                 //keep polling until the data returned is false
                 return that.pollEngine();
             }
             else {
                 return;
             }
         });
}, 1000);

fetchStatus: function() {
    var deferred = Q.defer();
    $.ajax({
        //code
       success: function(data) {
           deferred.resolve('true' or 'false' depending on data);
       }
       error: function() {
           deferred.reject('error');
       }
    });
   return deferred.promise;
}

此代码立即执行第一次,如果返回的数据为true,则由于节流,后续的ajax调用每隔1秒进行一次。

由于服务器数据可能没有准备好,我想第一次将ajax调用延迟几毫秒。但无论我尝试使用delaythrottle等代码,fetchStatus函数和随后的ajax调用都会立即执行。

0 个答案:

没有答案