我想在node.js中调用一个函数,但是该函数很可能在回调中出错,我想知道最好的方法来重复此函数指定的时间。

这样足够好还是更好?

var numberOfRetrials = 0;
do{
    send_bus(15, function(err){    // send_bus is synchronus function
        check = err;
    });
    numberOfRetrials++;
} while( (check != null) && (numberOfRetrials <3) );

最佳答案

尝试:

var numberOfRetrials = 0;

var task = function () {
    send_bus(15, function(err){
        if(err && numberOfRetrials++ <3){
            task();
        }
    });
};
task();


这将适用于同步或异步任务功能。这是一个递归函数,具有基于计数器的退出条件。

09-19 23:52