如何防止Node.js在等待回调时退出?
我有这样的代码:
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);
}
});
我的问题是,节点在运行时立即终止。它显示“ Icanhasclient”,但没有调用回调内的console.log。
(本例中的mysql是node-
mysql。
有什么办法可以使node.js在退出之前等待回调完成?
回答:
回调未排队
节点运行直到所有事件 都为空。诸如以下的调用时,回调将添加到事件 中
emmiter1.on('this_event',callback).
已执行。该调用是模块开发人员编写的代码的一部分。
如果模块是同步/阻塞版本的快速端口,则在操作的某些部分完成之前可能不会发生这种情况,并且所有队列在此之前可能为空,从而允许节点静默退出。
这是一个偷偷摸摸的错误,这是模块开发人员在开发过程中可能不会遇到的错误,因为它在具有多个
繁忙系统中很少发生,因为在临界时间很少所有人都空着。
用户可能的修复/错误检测器是在可疑函数调用之前插入特殊的计时器事件。
以上是 如何防止Node.js在等待回调时退出? 的全部内容, 来源链接: utcz.com/qa/397473.html