美文网首页
node.js event

node.js event

作者: 张大胃 | 来源:发表于2017-10-15 09:21 被阅读4次

//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');

相关文章

网友评论

      本文标题:node.js event

      本文链接:https://www.haomeiwen.com/subject/otmquxtx.html