Async.retry在等待间隔之前立即执行

Vik*_*rma 5 javascript asynchronous node.js async.js

async.retry({times : 25,interval : 30000},myFunction.bind(functionData),function(err,results){
console.log("===================================")
console.log("Async function finished processing")
return;
})
Run Code Online (Sandbox Code Playgroud)

立即调用myFunction,这也是默认值的5倍.电话之间也没有等待时间

Rob*_*bie 0

重试取决于函数内的回调。如果回调的第一个参数不是假的,那么它将根据您的timesinterval设置重试。例如:

var async = require('async');
var count = 0;
var functionData = { some: 'data' };
var myFunction = function(callback, results) {
  console.log(++count);
  process.nextTick(function() {
    if (count < 5) { // Fail 5 times
      return callback({ message: 'this failed' }, null);
    }
    callback(null, { message: 'this succeeded' });
  });
};

async.retry({times : 25, interval : 1000}, myFunction.bind(functionData), function(err, results) {
  console.log("===================================")
  console.log("Async function finished processing")
  return;
});
Run Code Online (Sandbox Code Playgroud)

这输出:

1
2
3
4
5
===================================
Async function finished processing
Run Code Online (Sandbox Code Playgroud)

每次尝试之间有 1 秒的间隔