Функция async.retry запускается единожды
Не могу найти нормальное объяснение по использованию функции retry из библиотеке async дока
var async = require('async');
function callFunc(data, time, name, callback) {
console.log("#")
callback({message: data, time, name}, null); //error
// callback(null, {message: "ok"}); // ok
}
var func = callFunc.bind(null, "data", "time", "name", function (err, data) {
console.log(data);
return err;
})
async.retry({times: 3, interval: 1000}, func, function (err, results) {
console.log('===================================');
console.log('Async function');
})
Пример того, что я реализую(только проще). Подскажите, что я делаю не так ? Весь день на это убил.
P.S. Фнункция должна вызываться три раза при ошибке.
Ответы (1 шт):
Автор решения: murlock
→ Ссылка
Функция async.retry ожидает функцию с сигнатурной функцией (callback, result), где callback — это функция обратного вызова, которую следует вызывать после завершения операции, а result — это объект, содержащий результаты операции. Как я решил:
var async = require('async');
function callFunc(data, time,callback) {
console.log(data, time)
callback({message: "err"}, null); //error
// callback(null, {message: "ok"}); // ok
}
async.retry({times: 3, interval: 1000}, function(callback, results) {
callFunc("test", "data", callback)
},
function (err, results) {
console.log('===================================');
console.log('Async function');
})