• 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
广告

© . All rights reserved.