Nodejs的大部分核心API都是基于異步事件驅(qū)動設(shè)計的,所有可以分發(fā)事件的對象都是EventEmitter類的實例。
大家知道,由于nodejs是單線程運行的,所以nodejs需要借助事件輪詢,不斷去查詢事件隊列中的事件消息,然后執(zhí)行該事件對應(yīng)的回調(diào)函數(shù),有點類似windows的消息映射機制。至于更細的實現(xiàn)環(huán)節(jié),可以另行查找資料。
下面介紹EventEmitter的使用。
1、監(jiān)聽事件和分發(fā)事件
EventEmitter實例可以使用on或addListener監(jiān)聽事件,emit()方法分發(fā)事件,如下所示:
const events = require('events'), EventEmitter = events.EventEmitter, util = require('util'); function myEmiter(){ EventEmitter.call(this); }; util.inherits(myEmiter,EventEmitter);//繼承EventEmitter類 const myEmitterIns =
延伸閱讀
- ssh框架
2016-09-30
- 阿里移動安全 [無線安全]玩轉(zhuǎn)無線電——不安全的藍牙鎖
2017-07-26
- 消息隊列NetMQ 原理分析4-Socket、Session、Option和Pipe
2024-03-26
- Selective Search for Object Recognition 論文筆記【圖片目標(biāo)分割】
2017-07-26
- 詞向量-LRWE模型-更好地識別反義詞同義詞
2017-07-26
- 從棧不平衡問題 理解 calling convention
2017-07-26
- php imagemagick 處理 圖片剪切、壓縮、合并、插入文本、背景色透明
2017-07-26
- Swift實現(xiàn)JSON轉(zhuǎn)Model - HandyJSON使用講解
2017-07-26
- 阿里移動安全 Android端惡意鎖屏勒索應(yīng)用分析
2017-07-26
- 集合結(jié)合數(shù)據(jù)結(jié)構(gòu)來看看(二)
2017-07-26
學(xué)習(xí)是年輕人改變自己的最好方式