2015-08-25 48 views
0

我想在node.js中調用一個函數,但很可能這個函數在它的回調函數中會有錯誤,我想知道重複這個函數的最佳方法。 。如果在node.js中發生錯誤,重複函數

這種方式好嗎還是有更好的?

​​
+0

'send_bus'是一個異步函數嗎? – Halcyon

+0

不,它是同步功能 – Nasr

回答

2

嘗試:

var numberOfRetrials = 0; 

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

這將工作無論是同步或異步任務功能。這是一個帶有基於計數器的退出條件的遞歸函數。

1

真的,因爲它看起來與我不同步。我不會把邏輯放在一個循環中:

var count = 0; 
function cb(err) { 
    if (!err && count < 3) { 
     count++; 
     send_bus(15, cb); 
    } 
} 
send_bus(15, cb); 
+0

'send_bus'是synchronus有沒有更好的解決方案?謝謝 – Nasr

+0

這適用於同步。出於某種原因,當我看到你的回調時,我會自動思考異步,但不一定是這樣。 – beautifulcoder

相關問題