• Node.js Video Tutorials

NodeJS - emitter.listeners() 方法


emitter.listeners() 方法將返回一個事件(eventName)的監聽器函式陣列的副本,我們將其作為引數傳遞。

此方法屬於Eventemitter類,它是 node:events 模組的內建類。

語法

以下是 NodeJs emitter.listeners() 方法的語法:

emitter.listeners(eventName)

引數

此方法僅接受一個引數,如下所述。

  • eventName:此方法的引數將儲存事件的名稱。它可以是字串或符號。

返回值

(Function[]) 此方法返回一個事件(eventName)的監聽器陣列的副本,我們將其作為引數傳遞。

示例 1

以下是 NodeJs emitter.Listeners() 方法的基本示例。

在這裡,我們建立了一個包含訊息的函式 f1()。然後,我們使用 eventName(myEvent)作為第一個引數呼叫了 emitter.on() 方法,並將 (f1) 傳遞給了該方法的 listener 引數。因此,它返回名為 myEvent 的事件的監聽器陣列的副本。

const EventEmitter = require('node:events');
const myEmitter = new EventEmitter();

function f1() {
};

myEmitter.on('myEvent', f1);

console.log(myEmitter.listeners('myEvent'));

輸出

以上程式產生以下輸出:

[ [Function: f1] ]

示例 2

在此程式中,我們建立了多個函式 f1()、f2() 和 f3()。然後,我們多次呼叫 emitter.on() 方法,並使用相同的 eventName(myEvent)作為引數,並將之前建立的監聽器函式傳遞給該方法的 listener 引數。然後,我們將 myEvent 作為引數傳遞給 emitter.listeners() 方法。因此,它返回名為 myEvent 的事件的監聽器陣列的副本。

const EventEmitter = require('node:events');
const myEmitter = new EventEmitter();

function f1() {
};

function f2() {
};

function f3() {
};

myEmitter.on('myEvent', f1);
myEmitter.on('myEvent', f2);
myEmitter.on('myEvent', f3);

console.log(myEmitter.listeners('myEvent'));

輸出

以上程式產生以下輸出:

[ [Function: f1], [Function: f2], [Function: f3] ]

示例 3

在此程式中,我們將一個監聽器函式傳遞給 myEvent,並將三個監聽器函式傳遞給 myEvent1。因此,我們使用 myEvent 和 myEvent1 呼叫了 myEmitter.listeners()。當我們編譯並執行程式時,myEmitter.listeners('myEvent') 將只返回一個監聽器函式,而 myEmitter.listeners('myEvent1') 將返回三個監聽器函式。

const EventEmitter = require('node:events');
const myEmitter = new EventEmitter();

function f1() {
};

function f2(){
};

function f3(){
};

function f4(){
};

myEmitter.on('myEvent', f1);
myEmitter.on('myEvent1', f2);
myEmitter.on('myEvent1', f3);
myEmitter.on('myEvent1', f4);

console.log(myEmitter.listeners('myEvent'));
console.log(myEmitter.listeners('myEvent1'));

輸出

以上程式產生以下輸出:

[ [Function: f1] ]
[ [Function: f2], [Function: f3], [Function: f4] ]
nodejs_events.htm
廣告