Node.JS事件的綁定與觸發(fā)示例詳解
簡(jiǎn)介
node.js的事件是使用events模塊,通過(guò)實(shí)例化它里面的EventEmitter類,來(lái)綁定和監(jiān)聽(tīng)事件。
EventEmitter,它的每個(gè)事件都是由
1.事件名,是一個(gè)字符串。
2.諾干個(gè)參數(shù)。
綁定事件
on()
const eve = require("events"); //導(dǎo)入模塊 var event = new eve.EventEmitter(); //進(jìn)行實(shí)例化聲明 event.on('namea', function () { console.log("堅(jiān)毅的小解同志"); })
查看綁定的事件
const eve = require("events"); //導(dǎo)入模塊 var event = new eve.EventEmitter(); //進(jìn)行實(shí)例化聲明 event.on('namea', function () { console.log("堅(jiān)毅的小解同志"); }) //查看對(duì)象屬性 里面有綁定的事件 console.log(event);
里面有事件具體的屬性,和事件的數(shù)量。
addListener()
除了使用on之外,我們還可以使用這個(gè)屬性,和on并沒(méi)有什么區(qū)別。
const eve = require("events"); //導(dǎo)入模塊 var event = new eve.EventEmitter(); //進(jìn)行實(shí)例化聲明 event.addListener('namea', function (a) { console.log(`堅(jiān)毅的${a}同志`); }) //觸發(fā)事件冰川入?yún)?shù) event.emit('namea', '小解');
once()
once 只會(huì)綁定一次性的觸發(fā)事件,觸發(fā)一次后就會(huì)解除綁定。
const eve = require("events"); //導(dǎo)入模塊 var event = new eve.EventEmitter(); //進(jìn)行實(shí)例化聲明 on once addListener event.once('namea', function (a) { console.log(`堅(jiān)毅的${a}同志`); }) //觸發(fā)事件冰川入?yún)?shù) event.emit('namea', '小解'); event.emit('namea', '小解');
我們觸發(fā)兩次,但只會(huì)顯示一次的結(jié)果。
監(jiān)聽(tīng)事件emit()
const eve = require("events"); //導(dǎo)入模塊 var event = new eve.EventEmitter(); //進(jìn)行實(shí)例化聲明 event.on('namea', function () { console.log("堅(jiān)毅的小解同志"); }) //觸發(fā)事件 event.emit('namea');
通過(guò)emit來(lái)進(jìn)行觸發(fā)事件。
傳參
const eve = require("events"); //導(dǎo)入模塊 var event = new eve.EventEmitter(); //進(jìn)行實(shí)例化聲明 event.on('namea', function (a) { console.log(`堅(jiān)毅的${a}同志`); }) //觸發(fā)事件冰川入?yún)?shù) event.emit('namea', '小解');
刪除事件
removeListener()
刪除指定事件的指定監(jiān)聽(tīng)器
const eve = require("events"); const { removeListener } = require("process"); //導(dǎo)入模塊 var event = new eve.EventEmitter(); //進(jìn)行實(shí)例化聲明 on once addListener let name = function (a) { console.log(`堅(jiān)毅的${a}同志`); } let name2 = function (a) { console.log(`堅(jiān)毅的${a}同志`); } event.once('namea', name) event.once('namea', name2) //觸發(fā)事件冰川入?yún)?shù) event.removeListener('namea', name) event.emit('namea', '小解');
刪除 namea事件中的name屬性,設(shè)置兩個(gè),刪除了一個(gè)name,只留下了name2的結(jié)果。
removeAllListeners()
刪除所有的事件監(jiān)聽(tīng)屬性,只需要寫(xiě)事件名,里面的監(jiān)聽(tīng)屬性都會(huì)被刪除。
const eve = require("events"); const { removeListener } = require("process"); //導(dǎo)入模塊 var event = new eve.EventEmitter(); //進(jìn)行實(shí)例化聲明 on once addListener let name = function (a) { console.log(`堅(jiān)毅的${a}同志`); } let name2 = function (a) { console.log(`堅(jiān)毅的${a}同志`); } event.once('namea', name) event.once('namea', name2) //觸發(fā)事件冰川入?yún)?shù) event.removeAllListeners('namea') event.emit('namea', '小解');
總結(jié)
到此這篇關(guān)于Node.JS事件的綁定與觸發(fā)的文章就介紹到這了,更多相關(guān)Node.JS事件綁定與觸發(fā)內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
nvm版本導(dǎo)致npm?install報(bào)錯(cuò)Unexpected?token?'.'的解決辦法
最近做項(xiàng)目遇到npm install 的問(wèn)題,下面這篇文章主要給大家介紹了關(guān)于nvm版本導(dǎo)致npm?install報(bào)錯(cuò)Unexpected?token?'.'的解決辦法,文中通過(guò)圖文介紹的非常詳細(xì),需要的朋友可以參考下2022-07-07利用node.js搭建簡(jiǎn)單web服務(wù)器的方法教程
本文主題是使用node來(lái)搭建最簡(jiǎn)單的web服務(wù)器,其后可以自己根據(jù)需要深入了解,目前在開(kāi)發(fā)過(guò)程中可以用來(lái)模擬與服務(wù)器進(jìn)行簡(jiǎn)單的交互,比如返回的資源控制等。需要的朋友可以參考學(xué)習(xí),下面來(lái)一起看看吧。2017-02-02Node.js項(xiàng)目中調(diào)用JavaScript的EJS模板庫(kù)的方法
這篇文章主要介紹了Node.js項(xiàng)目中調(diào)用JavaScript的EJS模板庫(kù)的方法,通過(guò)EJS模板引擎可以制作出維護(hù)性良好的HTML代碼結(jié)構(gòu),需要的朋友可以參考下2016-03-03nodejs基于WS模塊實(shí)現(xiàn)WebSocket聊天功能的方法
這篇文章主要介紹了nodejs基于WS模塊實(shí)現(xiàn)WebSocket聊天功能的方法,結(jié)合實(shí)例形式分析了nodejs使用WS模塊進(jìn)行WebSocket通信實(shí)現(xiàn)聊天功能的具體操作技巧,需要的朋友可以參考下2018-01-01Node.js dgram模塊實(shí)現(xiàn)UDP通信示例代碼
這篇文章主要介紹了Node.js dgram模塊實(shí)現(xiàn)UDP通信示例代碼,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2017-09-09Nodejs中koa2連接mysql的實(shí)現(xiàn)示例
本文主要介紹了Nodejs中koa2連接mysql的實(shí)現(xiàn)示例,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2022-07-07npm?install常見(jiàn)報(bào)錯(cuò)以及問(wèn)題詳解
npm?install總是一言難盡,下面這篇文章主要給大家介紹了關(guān)于npm?install常見(jiàn)報(bào)錯(cuò)以及問(wèn)題的相關(guān)資料,文中通過(guò)圖文以及實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下2023-02-02Node.js開(kāi)源應(yīng)用框架HapiJS介紹
這篇文章主要介紹了Node.js開(kāi)源應(yīng)用框架HapiJS介紹,本文講解了HapiJS介紹、HapiJS安裝和項(xiàng)目配置和開(kāi)發(fā)實(shí)例等內(nèi)容,需要的朋友可以參考下2015-01-01