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