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