1. 程式人生 > 實用技巧 >nodejs.cn-Node.js-入門教程:Node.js 事件模組

nodejs.cn-Node.js-入門教程:Node.js 事件模組

ylbtech-nodejs.cn-Node.js-入門教程:Node.js 事件模組

1.返回頂部
1、

Node.js 事件模組

目錄

events模組為提供了 EventEmitter 類,這是在 Node.js 中處理事件的關鍵。

const EventEmitter = require('events')
const door = new EventEmitter()

事件監聽器返回及使用以下事件:

  • 當監聽器被新增時返回newListener
  • 當監聽器被移除時返回removeListener

以下是最常用的方法的詳細說明:

emitter.addListener()

emitter.on()的別名。

emitter.emit()

觸發事件。 按照事件被註冊的順序同步地呼叫每個事件監聽器。

door.emit("slam") // 觸發 "slam" 事件。

emitter.eventNames()

返回字串(表示在當前EventEmitter物件上註冊的事件)陣列:

door.eventNames()

emitter.getMaxListeners()

獲取可以新增到EventEmitter物件的監聽器的最大數量(預設為 10,但可以使用setMaxListeners()進行增加或減少)。

door.getMaxListeners()

emitter.listenerCount()

獲取作為引數傳入的事件監聽器的計數:

door.listenerCount('open')

emitter.listeners()

獲取作為引數傳入的事件監聽器的陣列:

door.listeners('open')

emitter.off()

emitter.removeListener()的別名,新增於 Node.js 10。

emitter.on()

添加當事件被觸發時呼叫的回撥函式。

用法:

door.on('open', () => {
  console.log('開啟')
})

emitter.once()

添加當事件在註冊之後首次被觸發時呼叫的回撥函式。 該回調只會被呼叫一次,不會再被呼叫。

const EventEmitter = require('events')
const ee = new EventEmitter()

ee.once('my-event', () => {
  //只調用一次回撥函式。
})

emitter.prependListener()

當使用onaddListener新增監聽器時,監聽器會被新增到監聽器佇列中的最後一個,並且最後一個被呼叫。 使用prependListener則可以在其他監聽器之前新增並呼叫。

emitter.prependOnceListener()

當使用once新增監聽器時,監聽器會被新增到監聽器佇列中的最後一個,並且最後一個被呼叫。 使用prependOnceListener則可以在其他監聽器之前新增並呼叫。

emitter.removeAllListeners()

移除EventEmitter物件的所有監聽特定事件的監聽器:

door.removeAllListeners('open')

emitter.removeListener()

移除特定的監聽器。 可以通過將回調函式儲存到變數中(當新增時),以便以後可以引用它:

const doSomething = () => {}
door.on('open', doSomething)
door.removeListener('open', doSomething)

emitter.setMaxListeners()

設定可以新增到EventEmitter物件的監聽器的最大數量(預設為 10,但可以增加或減少)。

door.setMaxListeners(50)
2、
2.返回頂部
3.返回頂部
4.返回頂部
5.返回頂部
1、 http://nodejs.cn/learn/the-nodejs-events-module 2、
6.返回頂部
作者:ylbtech
出處:http://ylbtech.cnblogs.com/
本文版權歸作者和部落格園共有,歡迎轉載,但未經作者同意必須保留此段宣告,且在文章頁面明顯位置給出原文連線,否則保留追究法律責任的權利。