web-dev-qa-db-fra.com

Qu'est-ce que la fonction javascript `emit`?

En parcourant le module sax nodejs, j'ai vu plusieurs appels de fonction emit, mais je ne trouve aucune information à ce sujet.

Est-ce un outil natif V8 pour émettre des événements? Pourquoi sax-js n'utilisez pas EventEmitter pour les flux alors?

10
avasin
Please look at line number 624 of same file 
function emit (parser, event, data) {
  parser[event] && parser[event](data)
}
4
brk

Dans node.js, un événement peut être décrit simplement comme une chaîne avec un rappel correspondant. Un événement peut être "émis" ( ou en d'autres termes, le rappel correspondant peut être appelé ) plusieurs fois ou vous pouvez choisir d'écouter uniquement la première fois il est émis.

La méthode on ou addListener (essentiellement la méthode d'abonnement) vous permet de choisir l'événement à surveiller et le rappel à appeler. La méthode emit (la méthode de publication), d'autre part, vous permet "d'émettre" un événement, ce qui provoque le "déclenchement" de tous les rappels enregistrés pour l'événement (se faire appeler).

référence: https://docs.nodejitsu.com/articles/getting-started/control-flow/what-are-event-emitters/ (Ceci est un lien obsolète et ne fonctionne plus)

24
Psylogic

En bref: le travail d'émission consiste à déclencher des événements nommés qui, à leur tour, provoquent l'appel d'objets de fonction également appelés écouteurs.

Détaillé: l'API de base Node.js est construite autour d'une architecture pilotée par les événements idiomatique asynchrone dans laquelle certains types d'objets (appelés " émetteurs ") émettent périodiquement des événements nommés qui provoquent l'appel d'objets Function (" écouteurs ").

Tous les objets qui émettent des événements sont des instances de la classe EventEmitter. Ces objets exposent une fonction eventEmitter.on () qui permet d'attacher une ou plusieurs fonctions aux événements nommés émis par l'objet.

Lorsque l'objet EventEmitter émet un événement, toutes les fonctions attachées à cet événement spécifique sont appelées de manière synchrone . Toutes les valeurs renvoyées par les écouteurs appelés sont ignorées et seront ignorées.

En savoir plus ici

5