NodeJS 异步重试函数运行一次

rxztt3cl  于 2022-12-29  发布在  Node.js
关注(0)|答案(2)|浏览(189)

我在async librarydocs中找不到关于如何使用retry函数的正确解释

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.该函数应该在出错时调用三次。

uurity8g

uurity8g1#

async.retry函数需要一个具有签名function (callback, results)的函数,其中callback是一个回调函数,应该在操作完成时调用,results是一个对象,包含到目前为止的操作结果。

dphi5xsq

dphi5xsq2#

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');
})

相关问题