node.js - 在解决 promise 时如何保持 node.js 脚本处于事件状态?

标签 node.js promise

我的脚本使用 Promise(使用 q 库)执行一些异步任务。运行 mocha 测试工作正常。但是从命令行运行脚本不会。 Node 进程立即死亡。

var bot = require('./bot');

bot.getCategories().then(function (categories) {
  console.log('Found ' + categories.length + ' categories');
});

最佳答案

My script performs some asynchronous tasks using promises (with the q library). Running mocha tests works fine. However running the script from the command line does not. The node process immediately dies.

这肯定是一个错误,请报告它。 Node.js 环境不应在事件循环中仍有排队的情况下过早退出。

您不应该为了发生这种情况而稍微更改您的代码。 Q 库(请记住,今天有更多现代和原生的替代方案)在 process.nextTick “微任务”队列上安排异步回调。您的机器人库大概也执行 IO,这两件事都应该导致 Node 不终止。

关于node.js - 在解决 promise 时如何保持 node.js 脚本处于事件状态?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32585427/

相关文章:

javascript - ES6 类中的 Promises

javascript - 牛队列的process方法返回的promise可以忽略不计吗?

javascript - jstree 添加复选框插件导致 Uncaught TypeError : Cannot read property 'selected' of undefined

javascript - Node.js Promises Q.all 不起作用

javascript - 我得到错误 "Cannot read property ' 然后'未定义'

javascript - 如何从 .t​​hen 返回 promise

javascript - 未捕获( promise )TypeError : undefined is not a function (Vue. js,Electron)

node.js - Sequelize 迁移 - 添加外键约束问题

javascript - 在 ejs 循环中无法访问某些对象值

node.js - 在q(promise)中,无法读取未定义的属性 'apply'?