我正在尝试在节点js中使用异步来控制某些函数的执行流。在下面的代码中,我有三个声明的函数,应该分别打印'one','two'和'3',并执行其他任务(打印只是为了让我看到什么时候执行)。异步 - 回调不是函数
async.waterfall([
function(callback) {
settings();
console.log("1");
callback(null, 'one');
},
function(callback) {
profile();
console.log("2");
callback(null, 'two');
},
function(callback) {
console.log("3");
groups();
callback(null, 'two');
}
]);
所以我得到的错误“回调不是一个函数”在回调线(NULL,“两节”); 说实话,这可能是一个非常虚拟的问题,我不完全理解异步瀑布是如何工作的。但是我认真地尝试了一下,通过阅读例子,试图实现短代码并试着玩弄它。
有趣的是,如果使用async.series代替async.waterfall,则不会出现此类错误。但是,async.series将打印1,2,3,三,一,二。 瀑布模型中的数字按顺序打印,但里面的函数不按正确的顺序执行。
要注意的是,前两个函数 - 设置和配置文件 - 包括数据库读取和计算,而第三个函数只打印一些结果。
的珍贵版本,特别是如果你调用'async.series'的'async.waterfall',反之亦然,'async'内部出现此问题,当你窝'async'电话,将变得不可靠。 – Sandwich