我想在node.js中调用一个函数,但很可能这个函数在回调函数中会有错误,我想知道重复这个函数编号的最佳方法。
这种方式是好的还是有更好的?
var numberOfRetrials = 0;
do{
send_bus(15, function(err){ // send_bus is synchronus function
check = err;
});
numberOfRetrials++;
} while( (check != null) && (numberOfRetrials <3) );
答案 0 :(得分:2)
尝试:
var numberOfRetrials = 0;
var task = function () {
send_bus(15, function(err){
if(err && numberOfRetrials++ <3){
task();
}
});
};
task();
这适用于同步或异步任务功能。它是一个递归函数,具有基于计数器的退出条件。
答案 1 :(得分:1)
真的,因为它看起来与我异步。我不会把逻辑放在一个循环中:
var count = 0;
function cb(err) {
if (!err && count < 3) {
count++;
send_bus(15, cb);
}
}
send_bus(15, cb);