- 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 Where 条件
- Node.js - MySQL Order By 排序
- 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.prependOnceListener() 方法
当我们使用emitter.once() 或 emitter.on() 方法添加监听器函数时,它将被添加到监听器数组的末尾,并且最后被调用。通过调用emitter.prependOnceListener() 方法,它会在其他监听器之前添加并调用。
此方法属于Eventemitter 类,它是 node:events 模块的内置类。
语法
以下是 NodeJs emitter.prependOnceListener() 方法的语法:
emitter.prependOnceListener(eventName, listener)
参数
此方法接受两个参数,如下所述。
- eventName:这是方法的第一个参数,它保存事件的名称。它可以是字符串或符号。
- listener:此参数保存回调函数。
返回值
此方法返回对 EventEmitter 的引用,以便可以链接调用
示例 1
以下是 NodeJs emitter.prependOnceListener() 方法的基本示例。
在这里,我们创建了四个函数 f1、f2、f3 和 f4,并在其中包含一条消息。然后我们使用 myEmitter.on() 方法调用了 f1、f2 和 f3。它将根据调用的顺序添加监听器函数。稍后,我们使用 emitter.prependOnceListener() 方法调用了监听器函数 f4。因此,f4 将添加到监听器数组的开头。如果我们编译并运行程序,f4 将首先返回,然后是其余的。
const EventEmitter = require('node:events');
const myEmitter = new EventEmitter();
function f1(){
console.log("Func1 is added");
}
function f2(){
console.log("Fucn2 is added");
}
function f3(){
console.log("Fucn3 is added");
}
function f4(){
console.log("Fucn4 is added");
}
myEmitter.on("myEvent", f1);
myEmitter.on("myEvent", f2);
myEmitter.on("myEvent", f3);
myEmitter.prependOnceListener("myEvent", f4);
myEmitter.emit("myEvent");
输出
以上程序产生以下输出:
Fucn4 is added Func1 is added Fucn2 is added Fucn3 is added
示例 2
在此程序中,我们创建了四个函数 f1、f2、f3 和 f4,并在其中包含一条消息。然后我们使用 myEmitter.on() 方法调用了所有四个函数,并且我们没有使用 emitter.prependOnceListener() 方法调用任何函数。因此,当我们编译并运行程序时,myEmitter.on() 方法将根据调用的顺序返回监听器函数。
const EventEmitter = require('node:events');
const myEmitter = new EventEmitter();
function f1(){
console.log("Func1 is added");
}
function f2(){
console.log("Fucn2 is added");
}
function f3(){
console.log("Fucn3 is added");
}
function f4(){
console.log("Fucn4 is added");
}
myEmitter.on("myEvent", f1);
myEmitter.on("myEvent", f2);
myEmitter.on("myEvent", f3);
myEmitter.on("myEvent", f4);
myEmitter.emit("myEvent");
输出
以上程序产生以下输出:
Func1 is added Fucn2 is added Fucn3 is added Fucn4 is added
示例 3
emitter.prependOnceListener() 将为 eventName “anEvent” 添加一个一次性监听器到监听器数组的开头。当我们编译并运行程序时,它将把监听器函数添加到监听器数组的开头。
const EventEmitter = require('node:events');
const myEmitter = new EventEmitter();
myEmitter.prependOnceListener("anEvent", (f1) => {
console.log('Aye, nice to meet you');
});
myEmitter.prependOnceListener("anEvent", (f1) => {
console.log('Aye, Hello');
});
myEmitter.emit("anEvent");
输出
以上程序产生以下输出:
Aye, Hello Aye, nice to meet you
