gpt4 book ai didi

node.js async.js nextTick vs setImmediate

转载 作者:IT老高 更新时间:2023-10-28 23:26:24 25 4
gpt4 key购买 nike

我有一个大量使用 async.js 模块的大型 node.js 应用程序。

我有很多这样的代码:

async.series([
function(callback){
sql.update(query, callback);
},
function(callback){
if (something){
sql.update(query2, callback);
}
else{
callback(null);
}
}

]);

最大的问题是 else 语句中的同步回调。我前段时间读到您不应该使用 async.js 这样做,因为它可能会导致意外结果,但我不确定最好的选择是什么。我读到我应该在某些地方使用 process.nextTick,但现在我读到我们不应该使用它,它应该是 setImmediate。

有人能指出我正确的方向吗?谢谢!

最佳答案

我终于找到了我记得不久前读过的引用资料。

在这个页面上: http://caolanmcmahon.com/posts/nodejs_style_and_structure/

他在第 3 条规则中讨论了一般情况,并且与我的问题更直接相关,以回应页面上的第一条评论。

即使这不是我随机错误的原因,我也想根据作者的意图使用该模块,这是问题的重点。

在这篇文章中,他提到了使用 process.nextTick,但我真的认为 node 在这种情况下正试图摆脱这种情况,我在一个月前的异步问题线程中发现了一个响应,上面写着:

“你需要确保你的函数是异步运行的——如果你不知道它是否是异步的,你可以使用 setImmediate 强制它异步”

所以,这就是我要回答的问题。我将在 setImmediate 中包装所有同步回调。

关于node.js async.js nextTick vs setImmediate,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22514683/

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