node.js event

//http: //nodejs.cn/api/events.html

//引用和類型定義
const EventEmitter = require('events');
class MyEmitter extends EventEmitter {}
const myEmitter = new MyEmitter();

//new lister事件,新的on時間添加,會被提醒
//對應的還有一個removelistener事件,在被remove的時候會被提醒,

myEmitter.on('newListener', (event, listener) => {
//console.log('new listener ', event, listener);
console.log('new listener ', event);
});

//基本用法
myEmitter.on('event', () => {
console.log('觸發(fā)了一個事件!');
});
myEmitter.emit('event');

//this傳遞
myEmitter.on('event2', (a, b) => {
console.log(a, " ", b, this); //沒有指向emitter
});
myEmitter.on('event2', function (a, b) {
console.log(a, " ", b, this); //this指向emitter
});
myEmitter.emit('event2');

//異步執(zhí)行
myEmitter.on('event3', (a, b) => {
setImmediate(() => { //這個的作用并不是和明確,需要仔細查看,好像是需要模塊執(zhí)行完之后再執(zhí)行
console.log(a, " 異步 ", b, this);
});
});
myEmitter.emit('event3', 1, 2);

//只執(zhí)行一次
myEmitter.once('event4', () => {
console.log("event4 once");
});
myEmitter.emit('event4');
myEmitter.emit('event4');
myEmitter.emit('event4');

//event emiter error的處理
myEmitter.on('error', () => {
console.log("error hahaha");
});
myEmitter.emit('error');

最后編輯于
?著作權歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容