天天看點

【Node.JS】事件的綁定與觸發

目錄

​​簡介​​

​​綁定事件​​

​​on()​​

​​addListener()​​

​​ once()​​

​​監聽事件emit()​​

​​ 傳參​​

​​ 删除事件​​

​​removeListener()​​

​​ removeAllListeners()​​

簡介

node.js的事件是使用events子產品,通過執行個體化它裡面的EventEmitter類,來綁定和監聽事件。

EventEmitter,它的每個事件都是由

1.事件名,是一個字元串。

2.諾幹個參數。

綁定事件

on()

const eve = require("events");
//導入子產品
var event = new eve.EventEmitter();
//進行執行個體化聲明
event.on('namea', function () {
    console.log("堅毅的小解同志");
})      

檢視綁定的事件

const eve = require("events");
//導入子產品
var event = new eve.EventEmitter();
//進行執行個體化聲明
event.on('namea', function () {
    console.log("堅毅的小解同志");
})
//檢視對象屬性 裡面有綁定的事件
console.log(event);      
【Node.JS】事件的綁定與觸發

 裡面有事件具體的屬性,和事件的數量。

addListener()

除了使用on之外,我們還可以使用這個屬性,和on并沒有什麼差別。

const eve = require("events");
//導入子產品
var event = new eve.EventEmitter();
//進行執行個體化聲明
event.addListener('namea', function (a) {
    console.log(`堅毅的${a}同志`);
})
//觸發事件冰川入參數
event.emit('namea', '小解');      
【Node.JS】事件的綁定與觸發

 once()

once 隻會綁定一次性的觸發事件,觸發一次後就會解除綁定。

const eve = require("events");
//導入子產品
var event = new eve.EventEmitter();
//進行執行個體化聲明  on  once addListener
event.once('namea', function (a) {
    console.log(`堅毅的${a}同志`);
})
//觸發事件冰川入參數
event.emit('namea', '小解');
event.emit('namea', '小解');      

 我們觸發兩次,但隻會顯示一次的結果。

【Node.JS】事件的綁定與觸發

監聽事件emit()

const eve = require("events");
//導入子產品
var event = new eve.EventEmitter();
//進行執行個體化聲明
event.on('namea', function () {
    console.log("堅毅的小解同志");
})
//觸發事件
event.emit('namea');      

通過emit來進行觸發事件。

【Node.JS】事件的綁定與觸發

 傳參

const eve = require("events");
//導入子產品
var event = new eve.EventEmitter();
//進行執行個體化聲明
event.on('namea', function (a) {
    console.log(`堅毅的${a}同志`);
})
//觸發事件冰川入參數
event.emit('namea', '小解');      
【Node.JS】事件的綁定與觸發

 删除事件

removeListener()

 删除指定事件的指定監聽器

const eve = require("events");
const { removeListener } = require("process");
//導入子產品
var event = new eve.EventEmitter();
//進行執行個體化聲明  on  once addListener
let name = function (a) {
    console.log(`堅毅的${a}同志`);
}
let name2 = function (a) {
    console.log(`堅毅的${a}同志`);
}
event.once('namea', name)
event.once('namea', name2)
//觸發事件冰川入參數
event.removeListener('namea', name)
event.emit('namea', '小解');      

删除 namea事件中的name屬性,設定兩個,删除了一個name,隻留下了name2的結果。

【Node.JS】事件的綁定與觸發

 removeAllListeners()

const eve = require("events");
const { removeListener } = require("process");
//導入子產品
var event = new eve.EventEmitter();
//進行執行個體化聲明  on  once addListener
let name = function (a) {
    console.log(`堅毅的${a}同志`);
}
let name2 = function (a) {
    console.log(`堅毅的${a}同志`);
}
event.once('namea', name)
event.once('namea', name2)
//觸發事件冰川入參數
event.removeAllListeners('namea')
event.emit('namea', '小解');      

繼續閱讀