[英]Node.js and Async error
我有這樣的node.js應用程序結構:
async.forever(
function(callback) {
async.series([
function(callback) {
SomeFunction1(function(err, results) {
if (err) callback(err);
callback(null, results);
});
},
function(callback) {
SomeFunction2(function(err, results) {
if (err) callback(err);
callback(null, results);
});
},
function(callback) {
SomeFunction3(function(err, results) {
if (err) callback(err);
callback(null, results);
});
},
],
function(err, results) {
if (err) console.log(err);
setTimeout(callback, 30000);
});
},
function(err) {}
);
在async.forever周期中應該有30秒鍾的暫停,並且SomeFunction1,SomeFunction2和SomeFunction3的功能每個周期只能執行一次。
它可以正常工作一段時間,但是經過一段時間(有時是幾天)后,async.series中的功能(SomeFunction1,SomeFunction2和SomeFunction3)將在每個async.forever周期中開始多次運行。 日志顯示每個功能相隔3毫秒運行3次。
我沒有從節點得到任何錯誤。
任何幫助將不勝感激。
該函數在每個
async.forever
周期中開始多次運行
我唯一想到的是您具有多次調用其回調的函數。 async.js
對此並不在意,並且會很高興地觸發多個並行運行。
解決此類問題的一個好主意是改用Promises。 規范約定它們只能觸發一次回調,並防止多次解決它們。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.