Node.js 第六章- EventEmitter
一,Node.js事件特點
1.1 Node.js 所有的非同步I/O操作在完成時,都會發送一個事件到事件佇列。
1.2 Node.js裡面有許多物件都會分發事件;
一個net.Server物件會在每次有新連線時觸發一個事件;
一個fs.readStream物件會在檔案被開啟的時候觸發一個事件。
所有這些產生事件的物件都是events.EventEmitter的例項。
二,EventEmitter類
1.events模組只提供類一個物件:events.EventsEmitter.
EventEmitter的核心就是事件觸發與事件監聽器功能的封裝。
2. EventEmitter的每個事件由一個事件名和若干個引數組成,事件名是一個字串,通常表達一定的語義。
對於每個事件, EventEmitter 支援 若干個事件監聽器。
當事件觸發時,註冊到這個事件的事件監聽器被依次呼叫,事件引數作為回撥函式引數傳遞。
相關推薦
Node.js 第六章- EventEmitter
一,Node.js事件特點 1.1 Node.js 所有的非同步I/O操作在完成時,都會發送一個事件到事件佇列。 1.2 Node.js裡面有許多物件都會分發事件; 一個net.Server物件會在每次有新連線時觸發一個事件; &
Node.js 第十章- 函式
一,在JavaScript中,一個函式可以作為另一個函式的引數。 如下: function say(word) { console.log(word) } function execute(someFunction, value) {
Node.js 第九章- 模組系統
一,原由 為了讓Node.js檔案可以相互呼叫,Node.js提供了一個簡單的模組系統。 模組是Node.js應用程式的基本組成部分,檔案和模組是一一對應的。 換言之。一個Node.js檔案就是i 一個模組,這個檔案可能是JavaScript程式碼,JSON,或者編譯過的C/C++擴充套
Node.js 第八章- Stream(流)
一,Stream 是一個抽象介面,Node物件有很多物件實現這個介面。例如,對http伺服器發起請求的request物件就是一個Stream,還有stdout(標準輸出) 二,Node.js Stream有四種流型別: 1. Readable - 刻度操作 2. Writable - 可
Node.js 第七章- Buffer(緩衝區) 下
一,建立Buffer類 1.Buffer提供以下API建立Buffer類 1.1Buffer.alloc(size[, fill[, encoding ]]): 返回一個制定大小的Buffer例項,如果沒有設定fill,則預設填滿0 1.2Buffer.allocUnsafe(size)
Node.js 第七章- Buffer(緩衝區) 上
一,JavaScript只有字串型別,沒有二進位制型別。 二,處理TCP流或檔案流時,必須使用二進位制資料。 三,因此,在Node.js中定義一個Buffer類,該類用來建立一個專門存放二進位制資料的快取區。 四,在Node.js中,Buffer類是隨Node核心一起釋出的核心庫。
Node.js 第五章-事件迴圈
一,Node.js是單程序單執行緒應用程式。 因為V8引擎提供的非同步執行回撥介面,通過這些介面可以處理大量的併發,所以效能非常高。 二,特點 2.1 Node.js幾乎每一個API都支援回撥函式。 2.2 Node.js 基本上所有的時間機制都是用設計模式中觀察者模式實現。 2
Node.js 第四章 - 回撥函式
一,Node.js非同步程式設計,直接體現的就是回撥。 1.1Node使用大量的回撥函式。 1.2 Node所有的 API都支援回撥函式。 1.3執行程式碼就沒阻塞或等待檔案I/O操作。 1.4 提高效能,可以處理大量的併發請求。 阻塞程式碼,具體操作例項,參照: http:
Node.js 第三章 - REPL 互動式直譯器
一,Node.js REPL(Read Eval Print Loop:互動式直譯器) 表示一個電腦的環境,類似Window系統的終端或Unix/Linux shell, 我們可以在終端中輸入命令,並接受系統的響應。 二,Node自帶了互動式直譯器,可以執行以下任務: 1.讀取 - 讀取
Node入門教程(8)第六章:path 模塊詳解
format QQ 調用 保留 微軟 posix interface join 結果 path 模塊詳解 path 模塊提供了一些工具函數,用於處理文件與目錄的路徑。由於windows和其他系統之間路徑不統一,path模塊還專門做了相關處理,屏蔽了彼此之間的差異。 可移
Vue.js-06:第六章 - 按鍵修飾符的使用
一、前言 上週末的時候,準備試試將 ASP.NET Core 的專案部署到 CentOS 伺服器上,結果在一個接一個坑裡面跳,最後 Supervisor 守護程式還是有問題,於是,採用重灌系統大招,結果,碰巧趕上 aspnetcore 的一個 bug( Missing
js設計模式第六章 分既是合——建造者模式 讀書筆記
建造者模式:將一個複雜物件的構建層與其表示層相互分離,同樣的構建過程可採用不同的表示。 工廠模式主要是為了建立物件例項或者類簇,關心的是最終產出的是什麼。不關心你建立的整個過程,僅僅需要知道最終建立的結果。所以通過工廠模式我們得到的都是物件例項或者類簇。 然而建造者模式在建立物件是更為複雜一些,
Vue.js-06:第六章
一、前言 上週末的時候,準備試試將 ASP.NET Core 的專案部署到 CentOS 伺服器上,結果在一個接一個坑裡面跳,最後 Supervisor 守護程式還是有問題,於是,採用重灌系統大招,結果,碰巧趕上 aspnetcore 的一個 bug( Missing package dotnet-
Node.js 第十一章- 路由
一,我們要為路由提供請求的URL和其他需要的GET以及POST引數,隨後路由需要根據這些資料執行相應的程式碼。 因此,我們需要檢視HTTP請求,從中提取出請求的URL以及GET/POST引數。 我們需要的所有資料都會包含在request物件中,該物件作為onRequest()回撥函式的第一個
D3.js的V5版本-Vue框架中使用(第六章) ---互動式操作
一. Api使用on("eventName",function);該函式是新增一個監聽事件,它的第一個引數是事件型別,第二個引數是響應事件的內容d3.select(this), 選擇當前元素 常見的事件型別click:滑鼠單擊某元素時觸發,相當於mousedown和mou
第六章總結
bsp agile 需要 ack backlog 當前 功能 軟件 決定 敏捷流程:第一步:找出完成產品需要做的事情——Product Backlog 第二步:決定當前的沖刺需要解決的事情——Sprint Backlog 第三步:沖刺(Sprint)
《python編程》第六章——完整的系統程序 筆記
python編程 方法 nic 腳本 遊戲 err 訪問器 訪問 但是 1、小遊戲:找到最大的python文件。過程是:先掃描標準庫目錄,再變成標準庫目錄樹,然後加上模塊搜索路徑,最後掃描整臺機器。 2、再掃描整臺機器時我們註意到會有一些意外的報錯,在整個硬盤上運行腳本的目
構建之法 第六章 敏捷流程
小時 所有 管理層 log 匯報 薪水 quest 功能 任務 敏捷是一種很“年輕態”的思路/策略,是以“萬事萬物都在不停地發展變化”為指導去組織軟件工程的需求分析、內部的調和、代碼編寫甚至維護,所以我讀起來會覺得很有共鳴。然而並不是所有的地方都適合讓“敏捷”去闖一闖。 1
構建之法第六章學習心得
效率 用戶 當前 決定 復雜 技術 原則 核心 back 這周我學習了構建之法第六章敏捷流程,本章主要介紹了敏捷流程及其原則,Backlog、Burn-down、Sprint、Scrum方法論。以及什麽時候選擇敏捷的開發方法,什麽時候選擇其他方法。.敏捷開發的原則是盡早並持
C++對象模型——暫時性對象 (第六章)
|| int 求值 運算 const 三種方式 設有 必須 u+ 6.3 暫時性對象 (Temporary Objects) 假設有一個函數,形式例如以下: T operator+(const T &, const T &); 以及