- 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 连接查询 (Join)
- 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 数据限制 (Limit)
- Node.js - MongoDB 连接查询 (Join)
- Node.js 模块
- Node.js - 模块
- Node.js - 内置模块
- Node.js - 实用程序模块
- Node.js - Web 模块
- Node.js 有用资源
- Node.js - 快速指南
- Node.js - 有用资源
- Node.js - 讨论
NodeJS - emitter.prependListener() 方法
此方法将把作为监听器函数传递的函数添加到名为 eventName 的事件的监听器数组的开头。无法检查监听器是否已添加到监听器数组。
如果多次调用 `emitter.prependListener()` 方法并传入 eventName 和 listener 的相同组合,则监听器函数将被添加到监听器数组的开头,并将被多次调用。
此方法属于 `Eventemitter` 类,它是 node:events 模块的内置类。
语法
以下是 NodeJs `emitter.prependListener() ` 方法的语法:
emitter.prependListener(eventName, listener)
参数
此方法接受两个参数,如下所述。
- **eventName**: (必需) 这是方法的第一个参数,它保存事件的名称。可以是字符串或符号。
- **listener**: (必需) 此参数保存回调函数。
返回值
此方法返回 EventEmitter 的引用,以便可以链接调用。
示例 1
以下是 NodeJs `emitter.prependListener()` 方法的基本示例。
在这里,我们创建了四个函数 f1、f2、f3 和 f4,其中包含一条消息。然后,我们使用 myEmitter.on() 方法调用了 f1、f2 和 f3。它将根据调用的顺序添加监听器函数。稍后,我们使用 emitter.prependListener() 方法调用了监听器函数 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.prependListener("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.prependListener() 方法调用任何函数。因此,当我们编译并运行程序时,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.prependListener() 方法调用了 eventName 和 listener 的相同组合。因此,emitter.prependListener() 方法会将监听器添加到监听器数组的开头,并且会多次调用。当我们编译并运行程序时,f2 函数将被多次调用。
const EventEmitter = require('node:events');
const myEmitter = new EventEmitter();
function f1(){
console.log("Func1 is added");
}
function f2(){
console.log("Fucn2 is added");
}
myEmitter.on("myEvent", f1);
myEmitter.prependListener("myEvent", f2);
myEmitter.prependListener("myEvent", f2);
myEmitter.prependListener("myEvent", f2);
myEmitter.emit("myEvent");
输出
上述程序产生以下输出:
Fucn2 is added Fucn2 is added Fucn2 is added Func1 is added
