久久精品五月,日韩不卡视频在线观看,国产精品videossex久久发布 ,久久av综合

站長資訊網
最全最豐富的資訊網站

淺析Node的events模塊

淺析Node的events模塊

在 vue 的項目中,有時我們會用到全局事件總線來管理組件之間的通信。vue2 項目里我們可以自己借助 $emit、 $on$off 封裝一個 eventHub;vue3 中 $on$off 被移除了,我們可以使用 mitt 庫或 tiny-emitter 庫。在 node 里,則不用這么麻煩,其有個內置的 events 模塊就可以幫我們實現對于事件的監聽和發射。

事件的監聽和發射

先使用 CommonJS 的語法導入得到 EventEmitter 類,然后生成實例 emitterEventEmitter 十分重要,比如后續文章會介紹的 stream 就是 EventEmitter 的實例):

const EventEmitter = require('events') const emitter = new EventEmitter()
登錄后復制

接著就可以使用 emitter.on() 對事件進行監聽,傳入的第 1 個參數就是事件名稱,第 2 個參數為監聽到事件被發射后要執行的回調,如果發射事件時有傳入參數,會傳遞給回調函數,可以一個個單獨獲取,也可以像下面這樣使用函數的剩余參數獲?。? 【相關教程推薦:nodejs視頻教程、編程教學】

// 監聽事件 emitter.on('test', (...args) => {   console.log(args) // [ 1, 2, 3 ] }) // 發射事件 emitter.emit('test', 1, 2, 3)
登錄后復制

如果只需要監聽一次性事件,可以使用 emitter.once()

emitter.once('test', () => {   console.log('監聽到了事件發射') })  emitter.emit('test') emitter.emit('test') // 本次發射不會觸發打印
登錄后復制

如果有多個地方如下例所示對事件進行了監聽,一旦事件發射,那么監聽回調會按順序依次觸發:

emitter.on('test', () => {   console.log('監聽到了事件發射,1') }) emitter.on('test', () => {   console.log('監聽到了事件發射,2') }) emitter.emit('test')
登錄后復制

執行結果:

淺析Node的events模塊

如果想把監聽事件添加到最前面,可以使用 emitter.prependListener()(或者 emitter.prependOnceListener(),即提前但只監聽一次):

emitter.on('test', () => {   console.log('監聽到了事件發射,1') }) emitter.prependListener('test', () => {   console.log('監聽到了事件發射,2') })  emitter.emit('test')
登錄后復制

現在的結果如下:

淺析Node的events模塊

移除事件監聽

可以使用 emitter.off()(或者 emitter.removeListener())移除對事件的監聽,但需要傳入對應的事件名稱和回調函數,所以我們在監聽時的回調就不能直接像上面這樣定義在 emitter.on() 內部了,需要在外部定義然后傳入對該回調的引用:

function handler(...args) {   console.log(args) // [ 1, 2, 3 ] } emitter.on('test', handler) emitter.emit('test', 1, 2, 3)  emitter.off('test', handler) emitter.emit('test', '無法被監聽到')
登錄后復制

emitter.off()只能移除一個監聽,且必須傳入監聽回調,如果有多次監聽,想全部移除,可以使用 emitter.removeAllListeners()

emitter.on('test', handler) emitter.on('test', handler) emitter.on('test', handler)  emitter.removeAllListeners()
登錄后復制

emitter.removeAllListeners()如果不傳入任何參數,則移除所有事件名稱的所有事件監聽。其還可以傳入事件名稱,則移除對應事件名稱的所有事件監聽。

其它一些方法

監聽器數量限制

1 個 EventEmitter 對象上,某個事件名稱的最大監聽器數量默認為 10,這可以通過 emitter.getMaxListeners() 來驗證:

console.log(emitter.getMaxListeners()) // 10
登錄后復制

比如寫了 11 次 emitter.on('test', handler),就會報錯,提示說要用 emitter.setMaxListeners() 來增加最大限制數量:

淺析Node的events模塊

如果我們想知道當前 EventEmitter 對象上某個事件名稱的監聽器有多少個,有沒有超過最大限制,可以使用 emitter.listenerCount() 傳入事件名稱查看:

console.log(emitter.listenerCount('test'))
登錄后復制

獲取事件名稱和監聽器

使用 emitter.eventNames() 可以獲取當前 EventEmitter 對象上注冊的所有事件名稱,返回的是由事件字符串組成的數組:

emitter.on('test1', handler) emitter.on('test2', handler)  console.log(emitter.eventNames()) // [ 'test1', 'test2' ]
登錄后復制

如果想獲取某個事件對應的所有監聽器,可以使用 emitter.listeners() 并傳入事件名稱:

function handler1() {} function handler2() {} emitter.on('test', handler1) emitter.on('test', handler2)  console.log(emitter.listeners('test'))
登錄后復制

得到的結果如下:

淺析Node的events模塊

贊(0)
分享到: 更多 (0)
?
網站地圖   滬ICP備18035694號-2    滬公網安備31011702889846號
久久精品五月,日韩不卡视频在线观看,国产精品videossex久久发布 ,久久av综合
波多野结衣一区| 91国内精品| 色婷婷狠狠五月综合天色拍| 性欧美xxxx免费岛国不卡电影| 99久久亚洲精品蜜臀| 99视频精品| 亚洲色图国产| 国产欧美日韩一区二区三区四区 | 亚洲精品大片| 国产精品一在线观看| 国产不卡精品在线| 欧美日韩国产免费观看视频| 亚洲尤物av| 国产经典一区| 亚洲电影在线| 日韩欧美美女在线观看| 精品三级在线观看视频| 好看的av在线不卡观看| 亚洲日韩视频| 国产在线视频欧美一区| 激情五月色综合国产精品| 日韩精品三区四区| 日韩深夜视频| 日韩一二三区在线观看| 亚洲国产福利| 亚洲精品在线国产| 国产精品久久久久蜜臀| 日韩在线卡一卡二| 中文字幕在线官网| 午夜亚洲福利| 久久久久国产| 国产精品密蕾丝视频下载| 欧美日韩一区二区三区视频播放| 久久亚洲色图| av免费不卡国产观看| 免费精品视频在线| a国产在线视频| 亚洲18在线| 99精品视频在线| 国产精品巨作av| 视频一区二区三区入口| av综合电影网站| 欧美在线不卡| 日韩视频久久| 国产一区二区三区国产精品| 亚洲精品一级| 91成人超碰| 日韩成人a**站| 亚洲精品女人| 激情视频一区二区三区| 精品一区二区三区中文字幕| 亚洲久久在线| 激情综合网站| 日韩欧美1区| 美日韩一区二区三区| 亚洲区第一页| 99xxxx成人网| 九九色在线视频| 久久精品九色| 国产麻豆一区二区三区精品视频| 久久国产精品亚洲77777| 少妇久久久久| 国产精品13p| 国产日韩一区二区三区在线| 美国三级日本三级久久99 | 精品资源在线| 97se亚洲| 中文字幕日本一区| 午夜视频精品| 国产99久久| 蜜桃av在线播放| av最新在线| 国产a久久精品一区二区三区| 国产女人18毛片水真多18精品| 日韩视频中文| 91高清一区| 久久国产电影| 久久一区二区三区电影| 不卡一二三区| 亚洲天堂免费电影| 麻豆成全视频免费观看在线看| 国产精品一区二区免费福利视频| 日韩国产欧美一区二区三区| 亚洲精品乱码日韩| 日韩欧美2区| 日本在线不卡视频| 亚洲1区在线| 日本成人手机在线| 日本不卡视频一二三区| 午夜精品福利影院| 日韩激情综合| 国产精品免费大片| 精品国产乱码久久久久久1区2匹| 乱一区二区av| 欧美成人a交片免费看| 成人自拍av| 亚洲婷婷在线| 亚洲黄页一区| 人人精品人人爱| 亚洲一区二区三区无吗| 婷婷综合一区| 国产精品黄网站| 免费视频一区二区三区在线观看| 麻豆国产精品视频| 日本久久黄色| 99久久久久久中文字幕一区| 午夜国产欧美理论在线播放 | 日韩伦理福利| 午夜国产精品视频免费体验区| 伊人久久亚洲热| 亚洲免费毛片| 欧美国产中文高清| 麻豆精品蜜桃视频网站| 福利精品一区| 免费视频一区三区| 综合亚洲色图| 免费一级欧美片在线观看网站 | 久久亚洲国产精品尤物| 精品捆绑调教一区二区三区 | 日韩毛片视频| 久久亚洲二区| 国产精品红桃| 日本韩国欧美超级黄在线观看| 精品国产亚洲日本| 欧美xxxx性| 乱一区二区av| 欧美丝袜一区| 日本在线成人| sm久久捆绑调教精品一区| 伊人久久成人| 国产精品入口久久| 99成人超碰| 日本三级亚洲精品| 日韩黄色大片| 亚洲免费毛片| 高潮一区二区| 亚洲精品进入| 中文字幕成在线观看| 蜜臀久久99精品久久久画质超高清| 日韩av网站在线观看| 97精品国产| 亚洲精品日本| 欧洲亚洲一区二区三区| 日韩精品福利一区二区三区| 成人福利av| 日本免费新一区视频| 日本久久成人网| 国产亚洲精品精品国产亚洲综合| 91精品亚洲| 老司机精品在线| 丝袜诱惑制服诱惑色一区在线观看| 精品三级久久久| 日韩午夜视频在线| 九九在线精品| 国产精品s色| 蜜臀av国产精品久久久久| 国产一区二区三区亚洲| 日韩在线电影| 在线综合欧美| 电影天堂国产精品| 国产精品玖玖玖在线资源| 亚洲免费在线| 亚洲成人二区| 免费日韩成人| 日韩二区在线观看| 国产一区导航| 日本精品在线中文字幕| 国产精品第十页| 日本不卡高清| 午夜久久黄色| 色爱av综合网| 国产精品99一区二区三区| 日本午夜免费一区二区 | 国产精品17p| 亚洲免费福利一区| 99国产精品久久久久久久成人热| 国产黄大片在线观看| 免费看一区二区三区| 日本成人手机在线| 性一交一乱一区二区洋洋av| 久久精品99久久无色码中文字幕| 精品三级在线观看视频| 日韩和欧美的一区| 亚洲一区有码| 快she精品国产999| 日韩午夜在线| 欧美亚洲国产激情| 久久男女视频| 999久久久精品国产| 神马午夜在线视频| 黄色aa久久| 国产中文在线播放| 欧美男人天堂| 国产资源在线观看入口av| 久久精品系列| 国产在线观看91一区二区三区| 国产精品www.| 国产亚洲久久| 国产精品丝袜在线播放| 国产精品欧美在线观看|