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('触发了一个事件!');
});
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');

//异步执行
myEmitter.on('event3', (a, b) => {
setImmediate(() => { //这个的作用并不是和明确,需要仔细查看,好像是需要模块执行完之后再执行
console.log(a, " 异步 ", b, this);
});
});
myEmitter.emit('event3', 1, 2);

//只执行一次
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');

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容