这个node.js中的'on'方法是JavaScript方法还是节点方法?
我在Google上找不到这个答案,因为“on”是一个很常见的词。 在这个node.js例子中:
conn.on('close', function() { var pos = connections.indexOf(conn); if (pos >= 0) { connections.splice(pos, 1); } });
有一个.on
方法(?)。 它能做什么? 这是一个JavaScript方法? 或者它只是你在节点中find的东西? 我有点困惑,因为我觉得我在jQuery上看到类似于.on
东西。 它是类似于jQuery .live
事件处理程序吗?
任何人都可以向我解释这个?
这是来自Node的EventEmitter类的方法:
https://nodejs.org/docs/latest/api/events.html#events_emitter_on_eventname_listener
在这种情况下, on
是一个节点方法。 jQuery也有一个相同名字的方法,它们用于基本相同的目的 – 通过绑定事件处理程序来处理事件的string名称。 实际上签名看起来和我一样,IIRC。
纯粹的JavaScript没有这样的方法。
对于那些寻找一个简单的解释,这是节点本地实现,它是一个addListener(evtName,func)的别名在这里检查API
如你所知,Node.js是平的,因此监听事件(pub-sub),就像jQuery或Backbone一样。
在Node.js中,通常绑定函数(使用'on'或其他函数)来侦听事件。
从Node.js 文档 :
例如,net.Server每当对等体连接到它时就发出一个事件,当文件被打开时,fs.readStream会发出一个事件。 所有发出事件的对象都是events.EventEmitter的实例。 你可以通过执行require(“events”)来访问这个模块。
的NodeJS
.on(eventName, listener) eventName <any> The name of the event. listener <Function> The callback function
JQuery的
.on( events [, selector ] [, data ], handler ) events Type: String One or more space-separated event types and optional namespaces, such as "click" or "keydown.myPlugin". handler Type: Function A function to execute when the event is triggered.