Node.js は、Chrome JavaScript ランタイム上に構(gòu)築されたプラットフォームです。
Node.js は、Google の V8 エンジンをベースにしたイベント駆動(dòng)型 I/O サーバーサイド JavaScript 環(huán)境であり、V8 エンジンは JavaScript を非常に高速に実行し、非常に優(yōu)れたパフォーマンスを発揮します。
Node.jsイベントループ 構(gòu)文
Node.js はシングルプロセス、シングルスレッドのアプリケーションですが、V8 エンジンが提供する非同期実行コールバック インターフェイスは、これらのインターフェイスを通じて大量の同時(shí)実行を処理できるため、パフォーマンスは非常に高くなります。
Node.js のほぼすべての API はコールバック関數(shù)をサポートしています。
Node.js 基本的にすべてのイベント メカニズムは、デザイン パターンのオブザーバー パターンを使用して実裝されます。
Node.js のシングル スレッドは、イベント オブザーバーが終了するまで while(true) イベント ループに入るのと似ています。非同期イベントごとにイベント オブザーバーが生成されます。イベントが発生すると、コールバック関數(shù)が呼び出されます。
Node.jsイベントループ 例
main.js ファイルを作成します。コードは次のとおりです:
// 引入 events 模塊 var events = require('events'); // 創(chuàng)建 eventEmitter 對象 var eventEmitter = new events.EventEmitter(); // 創(chuàng)建事件處理程序 var connectHandler = function connected() { console.log('連接成功。'); // 觸發(fā) data_received 事件 eventEmitter.emit('data_received');} // 綁定 connection 事件處理程序 eventEmitter.on('connection', connectHandler); // 使用匿名函數(shù)綁定 data_received 事件 eventEmitter.on('data_received', function(){ console.log('數(shù)據(jù)接收成功。');}); // 觸發(fā) connection 事件 eventEmitter.emit('connection'); console.log("程序執(zhí)行完畢。");