首頁 > web前端 > js教程 > 主體

Node.js事件循環教程

巴扎黑
發布: 2017-08-08 10:35:25
原創
1626 人瀏覽過

這篇文章主要介紹了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中文網其他相關文章!

相關標籤:
來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板
關於我們 免責聲明 Sitemap
PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!