Повторение зависит от обратного вызова внутри вашей функции. Если первый аргумент обратного вызова не является ложным, он будет повторять попытку на основе настроек times
и interval
. Например:
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;
});
Это выводит:
1
2
3
4
5
===================================
Async function finished processing
с 1-секундным интервалом между каждой попыткой
Вы можете показать код для 'myFunction'? – Robbie