什么是`emit` javascript函数?

ava*_*sin 8 javascript node.js emit

在查看sax nodejs模块时,我看到了多个emit函数调用,但我找不到任何有关它的信息.

它是一些用于发射事件的V8原生工具吗?为什么sax-js不为流使用EventEmitter呢?

Vib*_*aul 19

在node.js中,事件可以简单地描述为具有相应回调的字符串.事件可以被"发出"(或者换句话说,相应的回调被调用)多次,或者您可以选择仅在第一次发出事件时进行侦听.

on或addListener方法(基本上是订阅方法)允许您选择要监视的事件和要调用的回调.另一方面,emit方法(发布方法)允许您"发出"一个事件,这会导致注册到事件的所有回调都"触发"(被调用).

参考:https://docs.nodejitsu.com/articles/getting-started/control-flow/what-are-event-emitters/


Haz*_*mat 10

简而言之:Emit 的工作是触发命名事件,进而导致调用侦听器的函数被调用。

详细:Node.js 核心 API 是围绕惯用的异步事件驱动架构构建的,其中某些类型的对象(称为“发射器”)定期发出命名事件,从而导致函数对象(“侦听器”)被调用。

所有发出事件的对象都是 EventEmitter 类的实例。这些对象公开了一个 eventEmitter.on() 函数,该函数允许将一个或多个函数附加到对象发出的命名事件。

当 EventEmitter 对象发出一个事件时,所有附加到该特定事件的函数都会被同步调用。被调用的侦听器返回的任何值都将被忽略并被丢弃。

在这里阅读更多


brk*_*brk 5

请查看同一文件的第 624 行。

function emit (parser, event, data) {

  parser[event] && parser[event](data)

}
Run Code Online (Sandbox Code Playgroud)