Maison >interface Web >js tutoriel >Tutoriel sur la boucle d'événements Node.js

Tutoriel sur la boucle d'événements Node.js

巴扎黑
巴扎黑original
2017-08-08 10:35:251697parcourir

Cet article présente principalement l'explication détaillée et des exemples de la boucle d'événements Node.js. Node.js a plusieurs événements intégrés. Nous pouvons lier et surveiller les événements en introduisant le module d'événements et en instanciant la classe EventEmitter. reportez-vous aux détails et aux exemples de la boucle d'événement

Node.js

  • Node.js est une application à processus unique et à thread unique, mais elle prend en charge. simultanéité via des événements et des rappels, les performances sont donc très élevées.

  • Chaque API de Node.js est asynchrone et s'exécute comme un thread indépendant, utilise des appels de fonction asynchrones et gère la concurrence.

  • Fondamentalement, tous les mécanismes d'événements dans Node.js sont implémentés à l'aide du modèle d'observateur dans le modèle de conception.

  • Le thread unique Node.js est similaire à la saisie d'une boucle d'événement while (true) jusqu'à ce qu'aucun observateur d'événement ne se termine. Chaque événement asynchrone génère un observateur d'événement. Si un événement se produit, appelez simplement le rappel. function.

Node.js a plusieurs événements intégrés. Nous pouvons lier et écouter des événements en introduisant le module d'événements et en instanciant la classe EventEmitter, l'exemple suivant :


// 引入 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);

Dans une application Node, la fonction qui effectue une opération asynchrone prend la fonction de rappel comme dernier paramètre, et la fonction de rappel reçoit l'objet d'erreur comme premier paramètre.


var fs = require("fs")
fs.readFile('input.txt',function(err,data){
if(err)
  console.log(err)
else
  console.log(data.toString())
})
console.log("程序执行完成")

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn