示例代码:
// 用到了內置模塊 events
const EventEmitter = require("events");
class DemoEmitter extends EventEmitter{
constructor(opt){
super(opt);
}
init(){
console.log("init..");
// emit觸發事件
this.emit('init', '1234'); // emit方法的第一個參數必須和觸發函數保持一致,第二個參數為傳遞的參數值,對應下面的param
}
close(){
console.log("close...");
this.emit('close', 'event');
}
}
let d = new DemoEmitter();
// on監聽某個事件,可以觸發多次
d.on('init', param => {
console.log("init 事件觸發,參數是:", param);
});
// once也是監聽事件,不過只能觸發一次
d.once("close", (param)=>{
console.log('close事件響應方法執行。。。。。', param);
});
d.init();
d.close();
// // 運行結果:
// init..
// init 事件觸發,參數是: 1234
// close...
// close事件響應方法執行。。。。。 event