事件(Event)機制 .on() .emit() .once() .removeListener()
阿新 • • 發佈:2020-12-28
// 事件(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");