gpt4 book ai didi

node.js - 如何防止 Node.js 在等待回调时退出?

转载 作者:IT老高 更新时间:2023-10-28 21:48:59 25 4
gpt4 key购买 nike

我有这样的代码:

var client = new mysql.Client(options);
console.log('Icanhasclient');

client.connect(function (err) {
console.log('jannn');
active_db = client;
console.log(err);
console.log('hest');

if (callback) {
if (err) {
callback(err, null);
}

callback(null, active_db);
}
});

我的问题是 Node 在我运行时立即终止。它打印“Icanhasclient”,但没有调用回调中的 console.log。

(本例中的mysql是node-mysql

有什么办法可以让 node.js 在退出之前等待回调完成?

最佳答案

回调未排队

Node 运行直到所有事件队列为空。当调用诸如

时,将回调添加到事件 queue
  emmiter1.on('this_event',callback).

已执行。此调用是模块开发人员编写的代码的一部分。

如果一个模块是同步/阻塞版本的快速端口,这可能不会发生,直到操作的某些部分完成并且所有队列可能在此之前清空,从而允许 Node 静默退出。

这是一个鬼鬼祟祟的错误,模块开发人员在开发过程中可能不会遇到,因为它在具有许多 队列 的繁忙系统中发生的频率较低,因为对于所有它们在关键时刻为空。

用户可能的修复/错误检测器是在可疑函数调用之前插入一个特殊的计时器事件。

关于node.js - 如何防止 Node.js 在等待回调时退出?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6442676/

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