日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 >

nodejs-EventEmitter

發布時間:2025/6/17 64 豆豆
生活随笔 收集整理的這篇文章主要介紹了 nodejs-EventEmitter 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
Node.js EventEmitter Node.js 所有的異步 I/O 操作在完成時都會發送一個事件到事件隊列。 Node.js 里面的許多對象都會分發事件:一個 net.Server 對象會在每次有新連接時觸發一個事件, 一個 fs.readStream 對象會在文件被打開的時候觸發一個事件。 所有這些產生事件的對象都是 events.EventEmitter 的實例例子---------------------------------------------------- // 引入 events 模塊 var EventEmitter = require('events').EventEmitter; // 創建 eventEmitter 對象 var event = new EventEmitter(); event.on('some_event', function() { console.log('some_event 事件觸發'); }); setTimeout(function() { event.emit('some_event'); }, 1000); 結果............................. some_event 事件觸發例子---------------------------------------------------- var events = require('events'); var emitter = new events.EventEmitter(); emitter.on('someEvent', function(arg1, arg2) {console.log('listener1', arg1, arg2); }); emitter.on('someEvent', function (arg1, arg2) {console.log('listener2', arg1, arg2); }); emitter.emit('someEvent', 'arg1', 'arg2'); 結果............................. listener1 arg1 arg2 listener2 arg1 arg2例子---------------------------------------------------- const events = require('events'); const eventEmitter = new events.EventEmitter();const listener1 = function listener1() {console.log('listener1...'); }const listener2 = function listener2() {console.log('listener2...'); }// 綁定 connection 事件,處理函數為 listener1 eventEmitter.addListener('connection', listener1);// 綁定 connection 事件,處理函數為 listener2 eventEmitter.on('connection', listener2);var eventListeners = eventEmitter.listenerCount('connection'); console.log(eventListeners + " 個監聽器監聽連接事件。");// 處理 connection 事件 eventEmitter.emit('connection');// 移除監綁定的 listener1 函數 eventEmitter.removeListener('connection', listener1); console.log("listener1 不再受監聽。");// 觸發連接事件 eventEmitter.emit('connection');eventListeners = eventEmitter.listenerCount('connection'); console.log(eventListeners + " 個監聽器監聽連接事件。");console.log("程序執行完畢。"); 結果............................. 2 個監聽器監聽連接事件。 listener1... listener2... listener1 不再受監聽。 listener2... 1 個監聽器監聽連接事件。 程序執行完畢。API----------------------------------------------------1.addListener(event, listener) 為指定事件添加一個監聽器到監聽器數組的尾部。 2.on(event, listener)為指定事件注冊一個監聽器,接受一個字符串 event 和一個回調函數。server.on('connection', function (stream) {console.log('someone connected!');}); 3.once(event, listener)為指定事件注冊一個單次監聽器,即 監聽器最多只會觸發一次,觸發后立刻解除該監聽器。server.once('connection', function (stream) {console.log('Ah, we have our first user!');}); 4.removeListener(event, listener) 移除指定事件的某個監聽器,監聽器必須是該事件已經注冊過的監聽器。它接受兩個參數,第一個是事件名稱,第二個是回調函數名稱。var callback = function(stream) {console.log('someone connected!');};server.on('connection', callback);// ...server.removeListener('connection', callback); 5.removeAllListeners([event])移除所有事件的所有監聽器, 如果指定事件,則移除指定事件的所有監聽器。 6.setMaxListeners(n)默認情況下, EventEmitters 如果你添加的監聽器超過 10 個就會輸出警告信息。 setMaxListeners 函數用于提高監聽器的默認限制的數量。 7.listeners(event)返回指定事件的監聽器數組。 8.emit(event, [arg1], [arg2], [...])按監聽器的順序執行執行每個監聽器,如果事件有注冊監聽返回 true,否則返回 false。類方法 1.listenerCount(emitter, event)返回指定事件的監聽器數量。events.EventEmitter.listenerCount(emitter, eventName) //已廢棄,不推薦events.emitter.listenerCount(eventName) //推薦 事件 1.newListener event - 字符串,事件名稱listener - 處理事件函數該事件在添加新監聽器時被觸發。2.removeListenerevent - 字符串,事件名稱listener - 處理事件函數從指定監聽器數組中刪除一個監聽器。需要注意的是,此操作將會改變處于被刪監聽器之后的那些監聽器的索引。補充---------------------------------------------------- 大多數時候我們不會直接使用 EventEmitter,而是在對象中繼承它。包括 fs、net、 http 在內的,只要是支持事件響應的核心模塊都是 EventEmitter 的子類

?

總結

以上是生活随笔為你收集整理的nodejs-EventEmitter的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。