• Node.js Video Tutorials

NodeJS - emitter.removeAllListener() 方法


emitter.removeAllListeners() 方法可以帮助我们移除属于特定事件的所有监听器函数。

最好使用 emitter.removeListener() 方法而不是 emitter.removeAllListeners(),因为后者可能会在代码中随机添加监听器时造成问题。因此,最好只移除需要移除的监听器,这可以通过使用 emitter.removeListener() 方法来实现。

此方法属于 Eventemitter 类,它是 node:events 模块的内置类。

语法

以下是 NodeJs emitter.removeAllListener() 方法的语法:

emitter.removeAllListeners([eventName]);

参数

此方法接受以下两个参数:

  • eventName: (必填) 此参数将保存要删除其所有监听器的特定 eventName。

返回值

此方法返回对 EventEmitter 的引用,以便可以链接调用。

示例 1

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

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

myEmitter.addListener('myEvent', function f1(){
});

myEmitter.removeAllListeners('myEvent');

输出

以上程序输出如下:

Program did not output anything!

示例 2

以下是一个示例,我们创建了名为 myemitter 的 EventEmitter 类的实例,并为名为 'myEvent' 的事件添加了四个监听器 (f1、f2、f3 和 f4),然后使用 removeAllListeners() 方法移除这些监听器。

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

myEmitter.addListener('myEvent', function f1(){
});
myEmitter.addListener('myEvent', function f2(){
});
myEmitter.addListener('myEvent', function f3(){
});
myEmitter.addListener('myEvent', function f4(){
});

myEmitter.removeAllListeners('myEvent');

输出

以上程序输出如下:

Program did not output anything!

示例 3

在下面的程序中,创建了一个名为 myEmitter 的 EventEmitter 实例,并为两个事件:'myEvent1' 和 'myEvent2' 添加了四个监听器 (f1、f2、f3 和 f4)。然后使用 removeAllListeners() 移除所有监听器。

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

myEmitter.addListener('myEvent1', function f1(){
});
myEmitter.addListener('myEvent1', function f2(){
});

myEmitter.addListener('myEvent2', function f3(){
});
myEmitter.addListener('myEvent2', function f4(){
});

myEmitter.removeAllListeners('myEvent1');
myEmitter.removeAllListeners('myEvent2');

输出

以上程序输出如下:

Program did not output anything!
nodejs_events.htm
广告

© . All rights reserved.