我在CLI应用程序中使用Bluebird。
由于某种原因,该应用程序尚未完成,但我无法理解为什么。我尝试在调试(在Webstorm中)中运行,并在“挂起”时暂停,但是我没有任何信息。
代码的形式为:
Promise.all([ /* promises */ ])
.then(function () {
return Promise.all([ /* promises */ ]);
})
.then(function () {
return console.log("Done");
})
.catch(function (err) {
return console.error("Failed: " + err);
});
该应用程序会进行报告,Done
并且通过检查我的数据库(因为承诺来自SQL INSERT),我可以看到所有内容。
我正在使用
mysql.createPool();
从promise-mysql
发送我的查询。
如何调试此挂起?还是我可以探索常见的故障模式?
听起来您可能未关闭所有mysql连接或未终止池。如果您还没有这样做,明智的做法是在.finally()
mysql操作之后的a中进行处理:
pool.end();
如文档中所示(添加了重点):
使用完池后,您必须结束所有连接,否则Node.js事件循环将保持活动状态,直到MySQL服务器关闭连接为止。如果在脚本中使用了池,或者试图正常关闭服务器时,通常会执行此操作。要终止池中的所有连接,请在池上使用end方法
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句