我的脚本使用promises(使用q库)执行一些异步任务.运行摩卡测试工作正常.但是,从命令行运行脚本则不行.节点进程立即死亡.
var bot = require('./bot');
bot.getCategories().then(function (categories) {
console.log('Found ' + categories.length + ' categories');
});
Run Code Online (Sandbox Code Playgroud)
Hyo*_*yun 10
当没有更多的回调要处理时,Node.js将退出.您可以使用setInterval或setTimeout始终保留一个,以便进程不会自动退出.
function wait () {
if (!EXITCONDITION)
setTimeout(wait, 1000);
};
wait();
Run Code Online (Sandbox Code Playgroud)
我的脚本使用promises(使用q库)执行一些异步任务.运行摩卡测试工作正常.但是,从命令行运行脚本则不行.节点进程立即死亡.
这肯定是个错误,请报告.在事件循环中仍然排队的事物中,Node.js环境不应过早退出.
为了实现这一点,你不应该改变你的代码.Q库(请记住,今天有更多的现代和本机替代方案)在process.nextTick"微任务"队列上安排异步回调.您的bot库可能也会执行IO,这些都应该导致节点不能终止.
| 归档时间: |
|
| 查看次数: |
11823 次 |
| 最近记录: |