
- Node.js 教程
- Node.js - 首頁
- Node.js - 簡介
- Node.js - 環境搭建
- Node.js - 第一個應用程式
- Node.js - REPL 終端
- Node.js - 命令列選項
- Node.js - 包管理器 (NPM)
- Node.js - 回撥函式概念
- Node.js - 上傳檔案
- Node.js - 傳送郵件
- Node.js - 事件
- Node.js - 事件迴圈
- Node.js - 事件發射器
- Node.js - 偵錯程式
- Node.js - 全域性物件
- Node.js - 控制檯
- Node.js - 程序
- Node.js - 應用程式擴充套件
- Node.js - 打包
- Node.js - Express 框架
- Node.js - RESTful API
- Node.js - 緩衝區
- Node.js - 流
- Node.js - 檔案系統
- Node.js MySQL
- Node.js - MySQL 入門
- Node.js - MySQL 建立資料庫
- Node.js - MySQL 建立表
- Node.js - MySQL 插入資料
- Node.js - MySQL 從表中選擇資料
- Node.js - MySQL 條件查詢
- Node.js - MySQL 排序
- Node.js - MySQL 刪除資料
- Node.js - MySQL 更新資料
- Node.js - MySQL 聯接
- Node.js MongoDB
- Node.js - MongoDB 入門
- Node.js - MongoDB 建立資料庫
- Node.js - MongoDB 建立集合
- Node.js - MongoDB 插入資料
- Node.js - MongoDB 查詢資料
- Node.js - MongoDB 查詢
- Node.js - MongoDB 排序
- Node.js - MongoDB 刪除資料
- Node.js - MongoDB 更新資料
- Node.js - MongoDB 限制結果
- Node.js - MongoDB 聯接
- Node.js 模組
- Node.js - 模組
- Node.js - 內建模組
- Node.js - 實用程式模組
- Node.js - Web 模組
- Node.js 有用資源
- Node.js - 快速指南
- Node.js - 有用資源
- Node.js - 討論
NodeJS - emitter.off() 方法
emitter.off() 方法將從名為 eventName 的事件的監聽器陣列中移除指定的監聽器函式。
此方法將從監聽器陣列中移除最近新增的監聽器函式例項。如果一個監聽器被多次新增到名為 eventName 的事件的監聽器陣列中,則應多次呼叫 emitter.off() 方法以從監聽器陣列中移除每個例項。
此方法屬於 Eventemitter 類,它是 node:events 模組的內建類。
語法
以下是 NodeJs emitter.off() 方法的語法:
emitter.off(eventName, listener)
引數
此方法接受如下所述的兩個引數。
- eventName:這是方法的第一個引數,它儲存事件的名稱。它可以是字串或符號。
- listener:此引數儲存回撥函式。
返回值
此方法返回對 EventEmitter 的引用,以便可以連結呼叫。
示例 1
以下是 NodeJs emitter.off() 方法的基本示例。
在這裡,我們建立了一個包含訊息的函式 f1(),透過呼叫 emitter.on() 方法並將 eventName (event) 作為第一個引數傳遞來呼叫它,並將 (f1) 傳遞給方法的 listener 函式引數。因此,該函式被新增到監聽器陣列中。然後,我們使用 eventName (event) 和 f1() 函式呼叫了 myEmitter.off() 方法。因此,當我們編譯並執行程式時,myEmitter.off() 方法將移除名為“event”的事件的監聽器函式 f1()。
const EventEmitter = require('node:events'); const myEvent = new EventEmitter(); function one(){ console('Welcome to Earth'); }; myEvent.on('event', one); console.log(myEvent.eventNames());
輸出
以上程式產生以下輸出:
Program did not output anything!
示例 2
以下是將 eventName 和 listener 函式的類似組合傳遞給 myEmitter.on() 方法的程式。這將導致監聽器函式被新增到監聽器陣列中並多次呼叫。因此,函式 f1() 被四次新增到監聽器陣列中。然後,我們兩次使用與在 myEmitter.on() 方法中傳遞的 eventName 和 listener 函式相同的組合呼叫了 myEmitter.off() 方法。因此,只有兩個監聽器函式 f1() 例項將被移除。
const EventEmitter = require('node:events'); const myEmitter = new EventEmitter(); function f1(){ console.log('Welcome to tutorialspoint'); } myEmitter.on('event', f1); myEmitter.on('event', f1); myEmitter.on('event', f1); myEmitter.on('event', f1); myEmitter.off('event', f1); myEmitter.off('event', f1); myEmitter.emit('event');
輸出
以上程式產生以下輸出:
Welcome to tutorialspoint Welcome to tutorialspoint
示例 3
在此程式中,我們為單個事件 (event) 多次添加了單個監聽器函式 (f1)。然後,我們使用名為“event”的事件和監聽器 f1() 呼叫了 myEmitter.off() 方法。如果我們編譯並執行程式,off() 方法將移除最近新增的例項。在這裡,將移除 myEmitter.on('event')。
const EventEmitter = require('node:events'); const myEmitter = new EventEmitter(); function f1(){ console.log('Bye'); } myEmitter.once('event', f1); myEmitter.addListener('event', f1); myEmitter.on('event', f1); myEmitter.off('event', f1); myEmitter.emit('event');
輸出
以上程式產生以下輸出:
Bye Bye