当someevent事件被触发时,我只想等待promise被解析,然后再继续。但slowFunctionThatReturnsPromise需要很长时间才能解决,整个过程在解决之前就会关闭。因此,它永远不会完成。我本以为使用then会等待承诺得到解决,但我不明白为什么不等待。
emitter.on('someevent', listener)
var listener = function()
{
x.slowFunctionThatReturnsPromise()
.then(function()
{
console.log('done');
})
}发布于 2017-03-11 17:54:23
你不能在node.js描述的"exit“事件上这样做
侦听器函数只能执行同步操作。Node.js进程将在调用“exit”事件侦听器后立即退出,从而导致仍在事件循环中排队的任何其他工作被放弃。例如,在下面的示例中,永远不会发生超时:
https://nodejs.org/dist/latest-v7.x/docs/api/process.html#process_event_exit
但是,您可以处理优雅的kill信号,然后在准备好时退出进程。
process.on('SIGINT', () => {
x.slowFunctionThatReturnsPromise().then(function() {
process.exit(0);
})
});发布于 2017-03-20 02:11:10
你是不是在x.slowFunctionThatReturnsPromise()面前丢了一个return
https://stackoverflow.com/questions/42733691
复制相似问题