Node JS - 如何创建自定义事件,以便在事件循环的关闭阶段处理它?

时间:2017-09-15 17:00:40

标签: node.js event-loop

引用NodeJS event loop documentation

  

关闭回调

     

如果套接字或句柄突然关闭(例如socket.destroy()),则   '关闭'将在此阶段发出事件。否则它会   通过process.nextTick()发出。

上述行的第一个意思是:这是否意味着事件将在此阶段生成,还是在此阶段执行事件的回调?

如果后者为真,那么socket.destroy()事件是否是在事件循环的关闭阶段处理的唯一事件?那么完成事件呢?

关键事件也是某种特殊的,它们将在事件循环的单独阶段处理?

如果在EventEmitter中我编写emmiter.emit('exe_finish')但我希望在事件循环的关闭回调阶段处理该事件,该怎么办?

在我看来,无论发出什么事件,都会在事件循环的poll / IO Callback阶段处理它们。

如何明确声明我的自定义事件应该在事件循环的关闭回调阶段处理?

甚至可以在NodeJS中执行此操作吗?或者我必须用C ++编写自己的节点模块才能做到这一点?

1 个答案:

答案 0 :(得分:0)

请参阅this guide,其中说明了

  

如果套接字或句柄突然关闭(例如socket.destroy()),则关闭'将在此阶段发出事件。否则它将通过process.nextTick()发出。

关闭回调的处理不是绑定到任何eventName,而是绑定到底层资源(例如套接字)。因此,我认为您无法在关闭回调阶段声明要处理的自定义事件。