NodeJS入门:常用模块汇总之事件模块
Posted 安之ccy
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了NodeJS入门:常用模块汇总之事件模块相关的知识,希望对你有一定的参考价值。
事件模块中,使用on
注册事件,使用emit
触发事件,二者构成了最简单的事件模块的demo:
// 引入模块
const EventEmitter = require("events");
// 创建MyEventEmitter类
class MyEventEmitter extends EventEmitter { }
// 实例化对象
const myEventEmitter = new MyEventEmitter();
// 注册事件,事件名为event
myEventEmitter.on('event', (msg) => {
console.log(msg);
})
// 触发event事件,并传入参数
myEventEmitter.emit("event","实现事件并将此参数传递到回调函数中");
console.log(1);
执行效果:
先输出"实现事件并将此参数传递到回调函数中",再输出1(同步)
- EventEmitter 以注册的顺序同步地调用所有监听器。 这样可以确保事件的正确排序,并有助于避免竞态条件和逻辑错误。
- 当适当时,监听器函数可以使用 setImmediate() 和 process.nextTick() 方法切换到异步的操作模式
如果我们使用异步事件:
// 注册事件,事件名为event
myEventEmitter.on('event', (msg) => {
setImmediate(() => {
console.log(msg);
});
// console.log(msg);
})
效果:先输出1,再输出"实现事件并将此参数传递到回调函数中"
以上是关于NodeJS入门:常用模块汇总之事件模块的主要内容,如果未能解决你的问题,请参考以下文章
NodeJS入门:常用模块汇总之(path / fs / os / url模块)