Par Jame Gaglo
Dans Node, plusieurs objets émettent des événements. Par
exemple, un serveur TCP émet un événement « connect »
chaque fois...
Il s'agit d'un style dans lequel une fonction appelle une fonction
de rappel après l'opération soit terminée, afin que vot...
Le modèle standard de rappel fonctionne bien
lorsque vous voulez que le client soit averti quand
une fonction a fini d'êtr...
Lorsque vous utilisez un modèle émetteur
d'événements, deux objets ou plus sont
impliquées, l'émetteur d'événements et un ...
1. var req = http.request(options, function(response)
{
2. response.on("data", function(data) {
3. console.log("some data ...
Ici, nous voyons quelques étapes nécessaires pour gérer
une requếte HTTP par un serverur HTTP utilisant
Node.
Ligne 1 util...
Notez que les événements émis ont toujours un
type, qui est représenté par une chaîne. Dans
l'exemple précédent, on avait ...
Un émetteur d'événements est une interface
générique qui sert tout type d'événement, mais
il y a un cas particulier dans l...
Tout objet qui implémente le modèle émetteur
d'événements (comme un Socket TCP, une requête
HTTP, et beaucoup d'autres) me...
 Lier des fonctions Callbacks à l'aide de .addListener() ou
.on()
En spécifiant un type d'événement et une fonction de ra...
 Lier des fonctions Callbacks à l'aide de .addListener() ou
.on()
Au lieu d'utiliser la fonction .addListener, vous pouve...
 Lier des fonctions Callbacks à l'aide de
.addListener() ou .on()
Les arguments qui sont passés à la fonction de
rappel d...
 Lier plusieurs Listners
Le modèle émetteur d'événements permet à plusieurs
écouteurs d'événements d'écouter le même type...
 Professional Nodejs de Pedro Teixeira
par James Gaglo 15
Prochain SlideShare
Chargement dans…5
×

Programmation evénementielle

738 vues

Publié le

Publié dans : Technologie
0 commentaire
1 j’aime
Statistiques
Remarques
  • Soyez le premier à commenter

Aucun téléchargement
Vues
Nombre de vues
738
Sur SlideShare
0
Issues des intégrations
0
Intégrations
1
Actions
Partages
0
Téléchargements
15
Commentaires
0
J’aime
1
Intégrations 0
Aucune incorporation

Aucune remarque pour cette diapositive

Programmation evénementielle

  1. 1. Par Jame Gaglo
  2. 2. Dans Node, plusieurs objets émettent des événements. Par exemple, un serveur TCP émet un événement « connect » chaque fois qu’un client est connecté. Ces objets sont, dans la nomenclature de Node, les émetteurs d'événements. Les émetteurs d'événements permettre aux programmeurs de s'abonner à des événements qui les intéressent. Le programmeur attache une fonction de rappel qui sera appelée chaque fois qu'un événement pertinent à cet émetteur d'événements se produit. Ce modèle éditeur / abonné est très semblable au modèle type GUI, lequel un programme reçoit notification qu'un certain bouton a été cliqué. En utilisant ce modèle, un programme côté serveur peut réagir ,par exemple,lorsqu'un client se connecte au serveur, les données sont disponibles sur une socket. 2par James Gaglo
  3. 3. Il s'agit d'un style dans lequel une fonction appelle une fonction de rappel après l'opération soit terminée, afin que votre programme puisse se poursuivre. Comme vous le verrez, JavaScript se prête à ce type de programmation. Voici un exemple de Node qui implique de charger un fichier en mémoire: var fs = require('fs'); fs.readFile('/etc/passwd', function(err, fileContent) { if (err) { throw err; } console.log('file content', fileContent.toString()); }); 3par James Gaglo
  4. 4. Le modèle standard de rappel fonctionne bien lorsque vous voulez que le client soit averti quand une fonction a fini d'être exécutée. Mais si plusieurs événements ont lieu lors de l'exécution, ou si elles se produisent à plusieurs reprises, ce style ne fonctionne pas bien. Par exemple, si vous souhaitez être averti chaque fois que des données sont disponibles sur un socket, le modèle standard de rappel n'est pas très utile. C'est alors que le modèle émetteur d'événements peut aider. Vous pouvez utiliser une interface standard pour séparer clairement l'émetteur d'événements et de l'écouteur d'événements. 4par James Gaglo
  5. 5. Lorsque vous utilisez un modèle émetteur d'événements, deux objets ou plus sont impliquées, l'émetteur d'événements et un ou plusieurs écouteurs d'événements. Un émetteur d'événements est un objet qui, comme son nom l'indique, émet des événements. Un écouteur d'événement est une partie du code qui se lie à l'émetteur d'événements et est à l'écoute de certains types d'événements, comme dans cet exemple: 5par James Gaglo
  6. 6. 1. var req = http.request(options, function(response) { 2. response.on("data", function(data) { 3. console.log("some data from the response", data); 4. }); 5. response.on("end", function() { 6. console.log("response ended"); 7. }); 8. }); 9. req.end(); 6par James Gaglo
  7. 7. Ici, nous voyons quelques étapes nécessaires pour gérer une requếte HTTP par un serverur HTTP utilisant Node. Ligne 1 utilise le style passage de continuation, passant dans une fonction inline qui sera exécutée une fois que la réponse est disponible. L'API HTTP request utilise les CPS ici parce que le programme continue de s'exécuter après la fonction http.request se termine. Une fois terminée, la fonction http.request appelle le rappel, en passant un objet de réponse. Cet objet de réponse est un émetteur d'événements et, selon la documentation de Node, peut émettre, entre autres, les événements data et end. 7par James Gaglo
  8. 8. Notez que les événements émis ont toujours un type, qui est représenté par une chaîne. Dans l'exemple précédent, on avait les types d'événements "data" et "end". Ce sont des chaînes arbitraires spécifiées par l'émetteur d'événements, par convention, les types d'événements sont généralement minuscules mots sans espaces. L'API que vous utilisez doit documenter les types d'événements qu'il émet. 8par James Gaglo
  9. 9. Un émetteur d'événements est une interface générique qui sert tout type d'événement, mais il y a un cas particulier dans la mise en œuvre dans Node, et c'est l'évènement "error". La plupart des implémentations émetteur d'événements dans le Node émet un évènement "error" chaque fois qu'il ya une erreur. 9par James Gaglo
  10. 10. Tout objet qui implémente le modèle émetteur d'événements (comme un Socket TCP, une requête HTTP, et beaucoup d'autres) met en œuvre un ensemble de méthodes:  addListener et on : Pour ajouter un écouteur d'événements à un type d'événement  once : Pour attacher un écouteur d'événement à un type d'événement donné qui sera appelée au plus une fois  removeEventListener: Pour supprimer un écouteur d'événements d'un événement donné  removeAllEventListeners - Pour supprimer tous les écouteurs d'événements d'un type d'événement donné 10par James Gaglo
  11. 11.  Lier des fonctions Callbacks à l'aide de .addListener() ou .on() En spécifiant un type d'événement et une fonction de rappel, vous pouvez souscrire une fonction à appeler lorsque l'un de ces événements se produit. Par exemple, une lecture d'un flux de fichier lecture peut émettre un événement "data" quand un morceau de données est disponible. Voici comment vous pouvez être informé de ce qui passe par une fonction de rappel: 1. function receiveData(data) { 2. console.log("got data from file read stream: %j", data); 3. } 4. readStream.addListener(“data”, receiveData); 11par James Gaglo
  12. 12.  Lier des fonctions Callbacks à l'aide de .addListener() ou .on() Au lieu d'utiliser la fonction .addListener, vous pouvez utiliser .on, qui est simplement un raccourci. la le code suivant est équivalent: 1. readStream.on("data", function(data) { 2. console.log("got data from file read stream: %j", data); 3. }); Dans le code précédent nous utilisons une fonction nommée que nous avons déclarée à l'avance, mais dans celui-ci une fonction inline anonyme est utilisée pour être plus succinct. 12par James Gaglo
  13. 13.  Lier des fonctions Callbacks à l'aide de .addListener() ou .on() Les arguments qui sont passés à la fonction de rappel dépendent de l'événement spécifié par l' objet émetteur et le type d'événement et ne sont pas normalisés. Un événement "data" pourrait émettre des données tampons "data", un évènement "error" pourrait émettre l'objet "error", et le flux d'événement "end" ne pourrait émettre aucune valeur. 13par James Gaglo
  14. 14.  Lier plusieurs Listners Le modèle émetteur d'événements permet à plusieurs écouteurs d'événements d'écouter le même type d'événement sur ​​le même émetteur d'événements. Par exemple: 1. readStream.on("data", function(data) { 2. console.log('I have some data here.'); 3. }); 4. readStream.on("data", function(data) { 5. console.log('I have some data here too.'); 6. }); 14par James Gaglo
  15. 15.  Professional Nodejs de Pedro Teixeira par James Gaglo 15

×