EventEmitter 是一个 Node.js 内置模块,它提供了一种简单的方式来实现事件驱动编程。在前端领域,我们也可以使用 npm 包 EventEmitter 来实现相似的功能。
安装
你可以通过 npm 安装 EventEmitter:
npm install events
如何使用
在项目中引入 EventEmitter:
const EventEmitter = require('events');
或者使用 ES6 的 import 语法:
import { EventEmitter } from 'events';
创建一个新的 EventEmitter 实例:
const emitter = new EventEmitter();
监听事件
使用 on()
方法监听事件,当事件被触发时,注册的回调函数将会执行:
emitter.on('event', function() { console.log('an event occurred!'); });
触发事件
使用 emit()
方法触发事件:
emitter.emit('event');
以上代码将会输出:
an event occurred!
监听一次性事件
使用 once()
方法监听一次性事件,当事件被触发时,回调函数将会执行一次并且被自动移除:
emitter.once('event', function() { console.log('this event will only trigger once'); });
移除事件
使用 removeListener()
方法移除指定的事件监听器:
function callback() { console.log('foo'); } emitter.on('event', callback); // ... emitter.removeListener('event', callback);
使用 removeAllListeners()
方法移除所有事件监听器:
emitter.removeAllListeners('event');
示例代码
-- -------------------- ---- ------- ----- ------------ - ------------------ ----- ------- - --- --------------- -- ---- ------------------- ---------- - --------------- ----- ------------ --- -- ---- ---------------------- -- ------- ------------------------- ---------- - ----------------- ----- ---- ---- ------- ------- --- -- ------- -------------------------- -------------------------- -- ---- -------- ---------- - ------------------- - ------------------------- ---------- ------------------------------------- ---------- ------------------------------------------
结论
EventEmitter 是一个非常强大的工具,它可以帮助我们实现事件驱动编程。通过本文的介绍和示例代码,你应该已经了解如何使用 npm 包 EventEmitter 来监听、触发和移除事件。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/34183