第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定

Node.js EventEmitter (觸發(fā)器)

標(biāo)簽:
Node.js

Node.js EventEmitter


Node.js 所有的异步 I/O 操作在完成时都会发送一个事件到事件队列.
Node.js里面的许多对象都会分发事件:一个net.Server对象会在每次有新连接时分发一个事件, 一个fs.readStream对象会在文件被打开的时候发出一个事件。 所有这些产生事件的对象都是 events.EventEmitter 的实例。

EventEmitter 类


events 模块只提供了一个内部类: events.EventEmitter。EventEmitter 的核心就是事件触发与事件监听器功能的封装。你可以通过require("events");来访问该模块。创建一个文件叫做emitter.js:

//创建EventEmitter类
var EventEmitter = require('events').EventEmitter();
//创建eventEmitter对象
var eventEmitter = new EventEmitter();
eventEmitter.on('bomb',function(){
      //观察者为匿名函数,事件为bomb
      console.log('bomb已经引爆');
})

//创建bomb之后就是要引爆它了,这里牵扯到事件的触发
setTimeout(function(){
      eventEmitter.emit('bomb');
},1000);

执行结果如下:
运行这段代码,1 秒后控制台输出了 '事件触发'。其原理是 event 对象注册了事件 bomb 的一个监听器,然后我们通过 setTimeout 在 1000 毫秒以后 event 对象触发事件bomb,此时会调用bomb的监听器(匿名函数)。

$ node emitter.js
bomb已经引爆

eventEmitter 的每个事件由一个事件名和若干个参数组成,事件名是一个字符串,通常表达一定的语义。对于每个事件,EventEmitter 支持 若干个事件监听器。
当事件触发时,注册到这个事件的事件监听器被依次调用,事件参数作为回调函数参数传递。
让我们以下面的例子解释这个过程:

 var event = require('events');
 var eventEmitter = new event.EventEmitter();

 eventEmitter.on('bobm',function(args1,args2){
       console.log('bomb引燃,引燃使用的是:'+args1+" 和"+arg2);
 });

eventEmitter.on('bobm',function(args1,args2){
       console.log('bomb引燃,使用的是:'+args1+"或者 "+arg2);
 });

执行以上代码,运行的结果如下:

$ node event.js
listener1 arg1 参数 arg2 参数
listener2 arg1 参数 arg2 参数

以上例子中,emitter 为事件 someEvent 注册了两个事件监听器,然后触发了 someEvent 事件。
运行结果中可以看到两个事件监听器回调函数被先后调用。 这就是EventEmitter最简单的用法。
EventEmitter 提供了多个属性,如 on 和 emiton 函数用于绑定事件函数,emit 属性用于触发一个事件。

點(diǎn)擊查看更多內(nèi)容
1人點(diǎn)贊

若覺(jué)得本文不錯(cuò),就分享一下吧!

評(píng)論

作者其他優(yōu)質(zhì)文章

正在加載中
感謝您的支持,我會(huì)繼續(xù)努力的~
掃碼打賞,你說(shuō)多少就多少
贊賞金額會(huì)直接到老師賬戶
支付方式
打開(kāi)微信掃一掃,即可進(jìn)行掃碼打賞哦
今天注冊(cè)有機(jī)會(huì)得

100積分直接送

付費(fèi)專欄免費(fèi)學(xué)

大額優(yōu)惠券免費(fèi)領(lǐng)

立即參與 放棄機(jī)會(huì)
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)

舉報(bào)

0/150
提交
取消