• Node.js Video Tutorials

Node.js eventTarget.dispatchEvent() 方法


eventTarget.removeEventListener() 方法用于移除之前使用 eventTarget.addEventListener() 方法添加的事件监听器。

此方法属于 node:events 模块的 EventTarget 类。

语法

以下是 NodeJs eventTarget.removeEventListener() 方法的语法:

eventTarget.removeEventListener(type, listener, [, options])

参数

此方法接受三个参数,如下所述。

此方法包含三个参数,如下所述。

  • type:此参数包含一个字符串值,表示要监听的事件类型。
  • listener:当发生指定类型的事件时接收通知的对象。
  • options:(可选)
    • once:布尔值,指示监听器是否只调用一次。如果为 true,则监听器在调用后将自动移除。
    • passive:布尔值,如果为 true,则表示监听器不会调用 Event 对象的 preventDefault() 方法。
    • capture:布尔值,指示此类型的事件在分派到任何 EventTarget 之前是否会分派到指定的监听器。在 Node.js 中不直接使用,仅为了 API 完整性而添加。
    • signal:当指定的 AbortSignal 对象的 abort() 方法被调用时,监听器将被移除。

示例 1

以下是 NodeJs eventTarget.removeEventListener() 方法的基本示例。

首先,我们导入 node:events 模块,将带有事件类型“foo”的监听器函数传递给 eventTarget.addEventListener() 方法。然后,我们通过调用 eventtarget.removeEventListener() 从事件类型“foo”中移除处理程序的实例。

const { EventEmitter, listenerCount } = require('node:events');

function handler(event){
};

const eventtarget = new EventTarget();

eventtarget.addEventListener('foo', handler);

eventtarget.removeEventListener('foo', handler);

输出

根据上面的程序,我们向事件类型“foo”添加了一个监听器“handler”,然后我们从“foo”中移除了“handler”。

示例 2

在这个程序中,我们将单个监听器函数“handler”与事件类型“foo”一起传递给 eventTarget.addEventListener() 方法。然后,我们通过传递“handler”作为参数来调用 eventtarget.removeEventListener()。

const { EventEmitter, listenerCount } = require('node:events');

function handler(event){
};

const eventtarget = new EventTarget();

eventtarget.addEventListener('foo', handler);
eventtarget.addEventListener('foo', handler);
eventtarget.addEventListener('foo', handler);

eventtarget.removeEventListener('foo', handler);

输出

根据上面的程序,我们向事件类型“foo”添加了三个“handler1”监听器实例,然后我们从“foo”中移除了最近添加的 handler 实例。

示例 3

在下面的程序中,我们添加了最多三个“handler”监听器实例。第一个实例使用 capture: true,其余两个实例使用 capture: false。然后,我们调用 eventTarget.removeEventListener() 方法,不带任何 {capture:} 值。我们再次调用 eventTarget.removeEventListener() 方法,并带有 {capture: true} 值。

const { EventEmitter, listenerCount } = require('node:events');

function handler(event){
};

const eventtarget = new EventTarget();

eventtarget.addEventListener('foo', handler, {capture: true});
eventtarget.addEventListener('foo', handler, {capture: false});
eventtarget.addEvaentListener('foo', handler, {capture: false});

eventtarget.removeEventListener('foo', handler);

eventtarget.removeEventListener('foo', handler, {capture: true});

输出

根据程序,eventtarget.removeEventListener('foo', handler) 将从“foo”事件类型中移除最近添加的实例,而 eventtarget.removeEventListener('foo', handler, {capture: true}) 将从“foo”事件类型中移除 handler 的第一个实例。

nodejs_events.htm
广告
© . All rights reserved.