使用 node.js 函数 async.retry 确定 success/failure
Determining success/failure with node.js function async.retry
我正在研究 node.js 模块异步,但我对函数 async.retry.
有一些问题
据其github docs,
该函数将继续尝试该任务,直到它成功或机会用完。但是我的任务如何判断成败呢?
我试过下面的代码:
var async = require('async');
var opts = {
count : -3
};
async.retry(5, function (cb, results) {
++this.count;
console.log(this.count, results);
if (this.count > 0) cb(null, this.count);
else cb();
}.bind(opts), function (err, results) {
console.log(err, results);
});
我希望它 运行 直到 count === 1
,但它总是打印:
-2 undefined
undefined undefined
那么如何正确使用该功能呢?
您希望 else
-分支失败。为此,您需要将一些内容传递给错误参数;目前,您只需传递 undefined
,这表示成功 - 这就是您返回的结果。
async.retry(5, function (cb, results) {
++this.count;
console.log(this.count, results);
if (this.count > 0) cb(null, this.count);
else cb(new Error("count too low"));
}.bind(opts), function (err, results) {
console.log(err, results);
});
我正在研究 node.js 模块异步,但我对函数 async.retry.
有一些问题据其github docs, 该函数将继续尝试该任务,直到它成功或机会用完。但是我的任务如何判断成败呢?
我试过下面的代码:
var async = require('async');
var opts = {
count : -3
};
async.retry(5, function (cb, results) {
++this.count;
console.log(this.count, results);
if (this.count > 0) cb(null, this.count);
else cb();
}.bind(opts), function (err, results) {
console.log(err, results);
});
我希望它 运行 直到 count === 1
,但它总是打印:
-2 undefined
undefined undefined
那么如何正确使用该功能呢?
您希望 else
-分支失败。为此,您需要将一些内容传递给错误参数;目前,您只需传递 undefined
,这表示成功 - 这就是您返回的结果。
async.retry(5, function (cb, results) {
++this.count;
console.log(this.count, results);
if (this.count > 0) cb(null, this.count);
else cb(new Error("count too low"));
}.bind(opts), function (err, results) {
console.log(err, results);
});