首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >等待promise解析到emitter.on侦听器函数内

等待promise解析到emitter.on侦听器函数内
EN

Stack Overflow用户
提问于 2017-03-11 17:45:36
回答 2查看 1.3K关注 0票数 0

someevent事件被触发时,我只想等待promise被解析,然后再继续。但slowFunctionThatReturnsPromise需要很长时间才能解决,整个过程在解决之前就会关闭。因此,它永远不会完成。我本以为使用then会等待承诺得到解决,但我不明白为什么不等待。

代码语言:javascript
复制
emitter.on('someevent', listener)


var listener = function()
{
    x.slowFunctionThatReturnsPromise()
        .then(function()
         {
             console.log('done');
         })
}
EN

回答 2

Stack Overflow用户

发布于 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信号,然后在准备好时退出进程。

代码语言:javascript
复制
process.on('SIGINT', () => {
    x.slowFunctionThatReturnsPromise().then(function() {
        process.exit(0);
    })
});
票数 1
EN

Stack Overflow用户

发布于 2017-03-20 02:11:10

你是不是在x.slowFunctionThatReturnsPromise()面前丢了一个return

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/42733691

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档