44 votes

La méthode 'on' dans ce code node.js est-elle une méthode JavaScript ou une méthode node ?

Je n'ai pas pu trouver cette réponse sur Google car "on" est un mot très courant. Dans cet exemple node.js :

conn.on('close', function() {
var pos =   connections.indexOf(conn);
    if (pos >= 0) {
        connections.splice(pos, 1);
    }
});

Hay una .on méthode( ?). Que fait-elle ? C'est une méthode JavaScript ? Ou c'est quelque chose que l'on trouve uniquement dans node ? Je suis un peu confus parce que je pense avoir vu quelque chose comme .on sur jQuery. Est-il similaire à celui de jQuery .live le gestionnaire d'événement ?

Quelqu'un peut-il m'expliquer cela ?

34voto

hugomg Points 29789

C'est une méthode de la classe EventEmitter de Node :

https://nodejs.org/docs/latest/api/events.html#events_emitter_on_eventname_listener

16voto

Tesserex Points 11149

Dans ce cas, on est une méthode de nœud. jQuery possède également une méthode du même nom, et elles sont utilisées dans le même but : lier les gestionnaires d'événements aux événements par leur nom de chaîne. En fait, les signatures me semblent identiques, IIRC.

Le JavaScript pur ne dispose pas d'une telle méthode.

4voto

Zaloz Points 241

Pour ceux qui cherchent une explication facile, il s'agit de l'implémentation native du nœud, et c'est un alias de addListener(evtName, func) Vérifier le API ici

2voto

alessioalex Points 27001

Comme vous le savez peut-être, Node.js est événementiel, donc à l'écoute des événements (pub-sub), tout comme jQuery ou Backbone par exemple.

En Node.js, vous liez généralement des fonctions (en utilisant 'on' ou d'autres fonctions) pour écouter les événements.

Depuis le Node.js documentation :

Par exemple, net.Server émet un événement chaque fois qu'un pair se connecte à lui, un fs.readStream émet un événement lorsque le fichier est ouvert. Tous les objets qui émettent des événements sont des instances de events.EventEmitter. Vous pouvez accéder à ce module en faisant : require("events") ;

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X