gpt4 book ai didi

javascript - 对 Node.js 的 async.parallel() 的调用是同步的吗?

转载 作者:行者123 更新时间:2023-11-30 07:39:13 25 4
gpt4 key购买 nike

我正在查看 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");

我可以确定在调用 async.parallel 完成之前永远不会调用 Trulu 日志调用吗?换句话说,所有的函数和最后的回调在调用Trulu log之前调用是肯定的吗?

最佳答案

Can I be sure that the Trulu log call will never be called before the call to async.parallel is finished?

调用本身,是的。

In other words, are all the functions

我想是的,虽然文档没有提到它。但是,我希望不会有任何更改,因为这可能会破坏现有代码。

and the final callback called before the Trulu log is called for sure?

没有。您不知道这些函数,当它们是异步的时,最终回调将在 Trulu 之后执行。如果所有函数都是同步的,则无论如何都不应该使用 async。事实上,虽然 async.js 确实使用 setImmediate internally所以一些回调(不幸的是很难识别)将是“异步的”,但是维护者stated :

Yes, making functions asynchronous is left up to the developer

如果你想确保回调总是被异步调用(在 Trulu 之后),即使函数是同步的,你可以考虑使用 A+ compliant Promises .

关于javascript - 对 Node.js 的 async.parallel() 的调用是同步的吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21631241/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com