簡體   English   中英

Node.js和異步錯誤

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM