這篇文章主要介紹了Node.js 事件循環詳解及實例的相關資料,Node.js 有多個內建的事件,我們可以透過引入events 模組,並透過實例化EventEmitter 類別來綁定和監聽事件,需要的朋友可以參考下
Node.js 事件循環詳解及實例
Node.js 是單進程單線程應用程序,但是透過事件和回調來支援並發,所以性能非常高。
Node.js 的每一個 API 都是非同步的,並作為一個獨立執行緒運行,使用非同步函數調用,並處理並發。
Node.js 基本上所有的事件機制都是用設計模式中觀察者模式實作。
Node.js 單執行緒類似進入一個while(true)的事件循環,直到沒有事件觀察者退出,每個非同步事件都會產生一個事件觀察者,如果有事件發生就呼叫該回呼函數.
Node.js 有多個內建的事件,我們可以透過引入events 模組,並透過實例化EventEmitter 類別來綁定和監聽事件,如下實例:
// 引入 events 模块 var events = require('events'); // 创建 eventEmitter 对象 var eventEmitter = new events.EventEmitter(); // 创建事件处理程序 var connectHandler = function connected() { console.log(1); // 触发 data_received 事件 eventEmitter.emit('data_received'); } // 绑定 connection 事件处理程序 eventEmitter.on('connection', connectHandler); // 使用匿名函数绑定 data_received 事件 eventEmitter.on('data_received', function(){ console.log(2); }); // 触发 connection 事件 eventEmitter.emit('connection'); console.log(3);
在Node 應用程式中,執行非同步操作的函數將回呼函數作為最後一個參數, 回呼函數接收錯誤物件作為第一個參數。
var fs = require("fs") fs.readFile('input.txt',function(err,data){ if(err) console.log(err) else console.log(data.toString()) }) console.log("程序执行完成")
以上是Node.js事件循環教程的詳細內容。更多資訊請關注PHP中文網其他相關文章!