我正在研究Node.js的async
模块来解决问题。我已经进行了一些测试:
var async = require("async");
function print(val) {
console.log(val);
}
async.parallel([
function(cb){ print(1); cb(null); },
function(cb){ print(2); cb(null); },
function(cb){ print(3); cb(null); },
function(cb){ print(4); cb(null); },
function(cb){ print(5); cb(null); }
],
function(err) {
if ( err ) {
console.error(err);
return;
}
console.log("Done!");
}
);
console.log("Trulu");
我可以确定在完成对Trulu的日志调用之前不会对其进行调用async.parallel
吗?换句话说,是否可以肯定在Trulu日志被调用之前调用所有函数和最终回调?
我可以确定在对async.parallel的调用完成之前,永远不会调用Trulu日志调用吗?
电话本身,是的。
换句话说,是所有功能
我想是的,尽管文档没有提及。但是,我希望不会有任何更改,因为那样可能会破坏现有代码。
确定在Trulu日志之前调用的最终回调是吗?
否。您不知道这些函数,并且当它们异步时,最终的回调将在之后执行Trulu
。如果所有功能都是同步的,则async
无论如何都不要使用。确实,尽管async.js确实在setImmediate
内部使用,所以某些回调(不幸地难以识别)将被“异步化”,但维护者表示:
是的,使函数异步取决于开发人员
如果您想确保始终以异步方式(在之后Trulu
)调用回调,即使函数是同步的,您也可以考虑使用兼容A +的Promises。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句