簡體   English   中英

事件發射器是否總是按發射順序依次發射

[英]Do event emitters always fire one after the other ,in the order they have been emitted

var events = require('events');                                                                                                                                                            
var eventEmitter = new events.EventEmitter();                                                                                                                                              

var ringBell = function ringBell()                                                                                                                                                         
{                                                                                                                                                                                          
 console.log('ring ring ring');                                                                                                                                                            
}                                                                                                                                                                                          

var lockDoor = function lockDoor()                                                                                                                                                         
{                                                                                                                                                                                          
console.log("lock door");                                                                                                                                                                  
}                                                                                                                                                                                          

eventEmitter.on("ringBell", ringBell);                                                                                                                                                     
eventEmitter.on("lockDoor", lockDoor);                                                                                                                                                     
eventEmitter.emit('ringBell');                                                                                                                                                             
eventEmitter.emit('lockDoor');

因此,首先發出ringBell事件,然后發出lockDoor事件。

我的問題是,在發出lockDoor事件之前,ringBell事件處理程序是否首先完成?

在這種情況下可以,但是如果您要在事件處理程序中添加更復雜的內容(例如異步db調用),則它將在完成ringBell事件處理程序之前啟動lockDoor事件處理程序。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM