国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > JavaScript > 正文

關于Node.js的events.EventEmitter用法介紹

2019-11-19 16:57:27
字體:
來源:轉載
供稿:網友

Node.js 所有的異步 I/O 操作在完成時都會發送一個事件到事件隊列。

Node.js里面的許多對象都會分發事件:一個net.Server對象會在每次有新連接時分發一個事件, 一個fs.readStream對象會在文件被打開的時候發出一個事件。 所有這些產生事件的對象都是 events.EventEmitter 的實例。
EventEmitter 類

events 模塊只提供了一個對象: events.EventEmitter。EventEmitter 的核心就是事件觸發與事件監聽器功能的封裝。

你可以通過require(“events”);來訪問該模塊。

// 引入 events 模塊 var events = require('events'); // 創建 eventEmitter 對象 var eventEmitter = new events.EventEmitter(); 

EventEmitter 對象如果在實例化時發生錯誤,會觸發 ‘error' 事件。當添加新的監聽器時,'newListener' 事件會觸發,當監聽器被移除時,'removeListener' 事件被觸發。

下面我們用一個簡單的例子說明 EventEmitter 的用法:

//event.js 文件 var EventEmitter = require('events').EventEmitter;  var event = new EventEmitter();  event.on('some_event', function() {    console.log('some_event 事件觸發');  });  setTimeout(function() {    event.emit('some_event');  }, 1000);  

執行結果如下:

運行這段代碼,1 秒后控制臺輸出了 ‘some_event 事件觸發'。其原理是 event 對象注冊了事件 some_event 的一個監聽器,然后我們通過 setTimeout 在 1000 毫秒以后向 event 對象發送事件 some_event,此時會調用some_event 的監聽器。

$ node event.js

some_event 事件觸發

EventEmitter 的每個事件由一個事件名和若干個參數組成,事件名是一個字符串,通常表達一定的語義。對于每個事件,EventEmitter 支持 若干個事件監聽器。

當事件觸發時,注冊到這個事件的事件監聽器被依次調用,事件參數作為回調函數參數傳遞。

讓我們以下面的例子解釋這個過程:

//event.js 文件 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 參數');  

執行以上代碼,運行的結果如下:

$ node event.js

listener1 arg1 參數 arg2 參數

listener2 arg1 參數 arg2 參數

以上例子中,emitter 為事件 someEvent 注冊了兩個事件監聽器,然后觸發了 someEvent 事件。

運行結果中可以看到兩個事件監聽器回調函數被先后調用。 這就是EventEmitter最簡單的用法。

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持武林網。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 开化县| 阳西县| 泸西县| 横山县| 慈利县| 达州市| 四会市| 洛浦县| 交口县| 商水县| 和田县| 阳曲县| 内丘县| 乌拉特中旗| 桂东县| 余姚市| 玉门市| 宜春市| 澳门| 中方县| 新化县| 江西省| 曲周县| 兴仁县| 丰顺县| 五峰| 肃宁县| 东至县| 竹溪县| 和平县| 新民市| 白山市| 常德市| 绍兴县| 陵水| 高清| 邯郸县| 赫章县| 行唐县| 仁化县| 钦州市|