Node.js 事件發射器
如果您在瀏覽器中使用過 JavaScript,就會知道使用者的許多互動都是透過事件處理的:滑鼠點選、鍵盤按鍵按下、對滑鼠移動的反應等等。
在後端,Node.js 提供了使用 events 模組 構建類似系統的選項。
該模組特別提供了 EventEmitter 類,我們將用它來處理事件。
您可以使用以下程式碼進行初始化
const = ('node:events');
const = new ();
這個物件暴露了許多方法,其中包括 on 和 emit。
emit用於觸發一個事件on用於新增一個回撥函式,該函式將在事件被觸發時執行
例如,讓我們建立一個 start 事件,並作為一個示例,我們透過列印到控制檯來對此作出反應
eventEmitter.on('start', () => {
.('started');
});
當我們執行時
eventEmitter.emit('start');
事件處理函式被觸發,我們得到了控制檯日誌。
您可以透過將引數作為 emit() 的額外引數傳遞給事件處理程式
eventEmitter.on('start', => {
.(`started ${}`);
});
eventEmitter.emit('start', 23);
多個引數
eventEmitter.on('start', (, ) => {
.(`started from ${} to ${}`);
});
eventEmitter.emit('start', 1, 100);
EventEmitter 物件還公開了其他幾個與事件互動的方法,例如
once(): 新增一個一次性的監聽器removeListener()/off(): 從事件中移除一個事件監聽器removeAllListeners(): 移除一個事件的所有監聽器
您可以在官方文件中閱讀有關這些方法的更多資訊。