繁体   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