1. 程式人生 > >Node學習筆記——NodeJS的事件驅動

Node學習筆記——NodeJS的事件驅動

首先來介紹一下NodeJS的事件驅動的概念:

         Node.js 所有的非同步 I/O 操作在完成時都會發送一個事件到事件佇列。在開發者看來,事件由 EventEmitter 物件提供。前面提到的 fs.readFile 和 http.createServer 的回撥函式都是通過 EventEmitter 來實現的。

以上加粗的這段話摘自《NodeJS開發指南》,具體解釋看以下程式碼:

var events = require('events'); //引入事件模組
var EventEmitter = events.EventEmitter;
var event = new EventEmitter();
event.on('call_event', function() {
	console.log('call_event方法被呼叫了。。。');
});
setTimeout(function() {
	event.emit('call_event');
}, 1000); //設定1秒後自動執行call-event方法

1秒後輸出結果:


        Node.js 程式由事件迴圈開始,到事件迴圈結束,所有的邏輯都是事件的回撥函式,所以 Node.js 始終在事件迴圈中,程式入口就是事件迴圈第一個事件的回撥函式。事件的回撥函式在執行的過程中,可能會發出 I/O 請求或直接發射(emit)事件,執行完畢後再返回事件迴圈,事件迴圈會檢查事件佇列中有沒有未處理的事件,直到程式結束。


相關推薦

Node學習筆記——NodeJS事件驅動

首先來介紹一下NodeJS的事件驅動的概念:          Node.js 所有的非同步 I/O 操作在完成時都會發送一個事件到事件佇列。在開發者看來,事件由 EventEmitter 物件提供。前面提到的 fs.readFile 和 http.createServer

NodeJS學習筆記 (21)事件機制-events(ok)

source 理解 SM 執行 hub 單個 nodejs index com 模塊概覽 events模塊是node的核心模塊之一,幾乎所有常用的node模塊都繼承了events模塊,比如http、fs等。 模塊本身非常簡單,API雖然也不少,但常用的就那麽幾個,這裏舉幾個

nodejs 事件驅動

訪問 服務器 fun pac ebs ng- 請求 介紹 基本 nodejs一個最大的特點就是支持事件驅動(並發) http://www.cnblogs.com/lua5/archive/2011/02/01/1948760.html Node.js現在非常活躍,相關生態社

node學習筆記

ram msi ima 下界 點擊 接受 nod 默認安裝 src 環境:windows 10 64位 webstorm2017.1 1. 安裝node包 步驟如下: 步驟 1 : 雙擊下載後的安裝包 v0.10.26,如下所示: 步驟 2 :

js學習筆記28----事件默認行為

onclick html ice 菜單 lang -- char top get 事件默認行為 : 當一個事件發生的時候瀏覽器自己會默認做的事情。 怎麽阻止? 當前這個行為是什麽事件觸發的,然後在這個事件的處理函數中使用return false; 右鍵菜單事件 o

JAVAscript學習筆記 js事件 第一節 (原創) 參考js使用表

onchange onf form 看不見 鼠標 hello cnblogs html 加載 <!DOCTYPE html> <html lang="en" onUnload="ud()"> <head> <meta ch

Node-學習筆記(1)

alua 就是 服務器 結果 move save toc pda 通過 什麽是Node.js 1)Node.js是一個基於Chrome V8引擎的JavaScript 運行環境 2)Node.js使用了一個事件驅動、非阻塞式I/O的模型,使其輕量又高效。 ① 事件

將js進行到底:node學習筆記2

客戶端 系統 用戶 是個 down 語言 計算 rmi 地址 node重要API之FS——CLI編程初體驗 所謂的“fs”就是file system! 當下幾乎任何一門編程語言都會提供對文件系統讀寫的API,比如c語言的open()函數。 而文件系統讀寫API最廣泛的用處就

將js進行到底:node學習筆記5

引用 form all com 錯誤頁面 cnblogs 框架 isp 註意 HTTP開發之Connect工具集——中間件 繼學習node.js的TCP API和HTTP API之後,node.js web開發進入了正軌,但這就好像Java的servlet一樣,我們不可能使

node學習筆記4——get數據傳遞

1.0 set com put cti 用戶名 req oca mit nodejs中,關於將接收到的數據處理為json格式用到的是 url 模塊。 主要用到是下面3個東東: url.parse url.pathname url.query 我們看一個簡單

node學習筆記6——自定義模塊

例子 學習筆記 log 2個 模塊 而且 nodejs 說明 分享 自定義模塊三大關鍵詞: require——引入模塊; exports——單個輸出; module——批量輸出。 從例子下手: 1.創建module.js: exports.a=22; exports.

node學習筆記8——發布npm包

刪除 color blank size oam res fun lis return 1.註冊一個npm賬號; 2.在控制臺輸入 npm login: 依次輸入你的賬號信息,可通過 npm whoami 來驗證是否登錄成功 3.初始化包,控制臺輸入 npm ini

node學習筆記-持續更新

pdf 40 設定node代理 node安裝express npm install -g express npm install -g express-generator 檢視安裝的版本express --version nod

Vue 2.0學習筆記事件匯流排(EventBus)

許多現代JavaScript框架和庫的核心概念是能夠將資料和UI封裝在模組化、可重用的元件中。這對於開發人員可以在開發整個應用程式時避免使用編寫大量重複的程式碼。雖然這樣做非常有用,但也涉及到元件之間的資料通訊。在Vue中同樣有這樣的概念存在。通過前面一段時間的學習,Vue元件資料通訊常常會有父子元

JavaScript高階程式設計學習筆記事件

1、事件流 事件流描述的是從頁面中接收事件的順序。 事件冒泡 IE的事件流叫做事件冒泡(event bubbling),即事件開始時由最具體的元素(文件中巢狀層次最深的那個節點)接收,然後逐級向上傳播到較為不具體的節點(文件)。(DOM樹向上傳播)(通俗解釋(個人理解: 當一個元素上的事件被觸發的時候,比如

一、NodeJS事件驅動模型

接觸nodejs有兩個月,對nodejs的兩大特性一直有點模糊,即非同步IO和事件驅動。通過對《深入淺出nodejs》和幾篇部落格的閱讀以後,有了大致的瞭解,總結一下。 幾個例子 在開始之前,先來看幾個簡單例子,這也是我在使用nodejs時候遇到的幾個比較困惑的例子。 example

【迅為iTop4412學習筆記】6. 驅動註冊

宣告 以下都是我剛開始看驅動視訊的個人強行解讀,如果有誤請指出,共同進步。 本節目標 驅動註冊 上一篇我們註冊了裝置,接下來就是要註冊驅動,而註冊完驅動,就可以基佬配對了… 首先我們開啟標頭檔案,看一下驅動註

Spring Cloud學習筆記28——訊息驅動的微服務:Spring Cloud Stream

Spring Cloud Stream是一個用來為微服務應用構建訊息驅動能力的框架。它可以基於Spring Boot來建立獨立的、可用於生產的Spring應用程式。它通過使用Spring Integration來連線訊息代理中介軟體以實現訊息事件驅動。Spring Cloud Stream為

程式碼大全學習筆記之表驅動

資料壓倒一切。如果選擇了正確的資料結構並把一切組織的井井有條,正確的演算法就不言自明。程式設計的核心是資料結構,而不是演算法。 ——Rob Pike  說明      本文基於這樣的認識:資料是易變的,邏輯是穩定的。      本文例舉的程式設計實現多為程式碼片段,但不

MongoDB學習筆記~關於官方驅動整合IQueryable之後的一些事

回到目錄 關於官方驅動整合IQueryable之後的一些事,有好事也有壞事,好事就是它會將你的linq語句非常友好的翻譯成MongoDB語句,而壞事就是有一些linq語句不會被翻譯,不會被翻譯的代價就是將整個結果集裝到記憶體,然後進行linq to object的查詢,效率自然是非常低的,呵呵。 好事