Dans un endroit, nous utilisons eventEmitter pour générer des événements. En fait, c'est la manière très commune.Comment fonctionnent les arguments dans le modèle de publication/abonnement?
eventEmitter.emit('started', data, date);
Dans l'autre endroit, nous essayons de l'attraper. Tout est assez clair lors de l'utilisation des fonctions de flèche. 'data' et 'date' sont passés à la fonction comme arguments
someInstanse.event.on('started', (data, date) => {
//crazy stuff here
})
Mais comment cette notaion fonctionne-t-elle? Nous déterminons 3 args avec émetteur et maintenant nous avons vraiment que la chaîne d'événements et une fonction au lieu
someInstance.event.on('started', function(data, date) {
});
Je suppose que avant d'ajouter des fonctions de direction, il était le seul moyen d'appeler des fonctions anonymes
Ouvert le document Node et lire que la méthode emit passe des arguments aux écouteurs. De même chaque emitter.on (eventName, listener) signifie que l'écouteur est une fonction de rappel. Donc ce n'est pas un problème maintenant. –
Êtes-vous confus par la façon dont les données sont transmises aux fonctions de rappel? ou comment l'eventemitter fonctionne sous le capot? – Chang
Oui, maintenant je sais comment le formuler. Je n'ai aucune idée pourquoi 'emit' invoqué du côté client ne provoque pas' emit' sur le serveur. Selon le modèle de publication/abonnement, chaque émission itère à travers les fonctions des écouteurs et les exécute ou retourne false si le tableau avec des handles n'est pas défini. J'essaie la librairie Socket.IO donc il est seulement possible d'accrocher 'emits' appelé par le serveur lui-même. –