// 事件(Event)机制 const EventEmitter = require('events'); const emitter = new EventEmitter(); // 侦听一个事件 emitter.on("a", (event) => { console.log(event + "---监听到了!\n"); }); // 发出一个事件 emitter.emit("a", "发出事件");
on 与 once 的差别
/* on 与 once 的差别 on 会无限制的响应 once 只会响应一次 */ const EventEmitter = require('events'); const emitter = new EventEmitter(); emitter.on("a", function (e) { console.log('on监听事件:'+e); }); emitter.once("a", function (e) { console.log('once监听事件:'+e); }); emitter.emit("a", "event"); emitter.emit("a", "event1"); emitter.emit("a", "event2"); /* on监听事件:event once监听事件:event on监听事件:event1 on监听事件:event2 */
removeListener 来删除侦听的函数
/* removeListener 当然我们侦听了某个消息后,不想再侦听时可用 removeListener 来删除侦听的函数 但是前提函数必须是有名字的,并且是变量。如下面的函数 */ const EventEmitter = require('events'); const emitter = new EventEmitter(); const listener = function() { console.log('listener invoked!'); }; emitter.on("a", listener); emitter.emit("a", "event"); console.log('event send!'); console.log('before remove'); emitter.removeListener("a", listener); console.log('after remove'); emitter.emit("a", "event2");