Javascript 回调函数中的参数来自哪里?Node.js
例如,Javascript 回调函数中的参数来自哪里?Node.js,javascript,node.js,callback,eventemitter,Javascript,Node.js,Callback,Eventemitter,例如,chat是一个事件发射器。回调函数可以接受名为消息的参数。我的问题是消息来自哪里?事件消息是否提供了它?如果是这样的话,你们能给我一个事件消息的示例,让我看看它何时被触发,参数是如何提供给聊天事件发射器的吗?非常感谢你们 chat.on('message',function(message){ console.log(message); }); 消息参数来自触发事件的任何事件 您可以从EventEmitter的中看到on是addListener的同义词: EventEmitter
chat
是一个事件发射器。回调函数可以接受名为消息的参数。我的问题是消息来自哪里?事件消息
是否提供了它?如果是这样的话,你们能给我一个事件消息
的示例,让我看看它何时被触发,参数是如何提供给聊天
事件发射器的吗?非常感谢你们
chat.on('message',function(message){
console.log(message);
});
消息
参数来自触发事件的任何事件
您可以从EventEmitter
的中看到on
是addListener
的同义词:
EventEmitter.prototype.on = EventEmitter.prototype.addListener;
然后您可以看到,addListener
只是将处理程序放在所提供类型(简化代码)的所有处理程序的列表中:
然后emit
调用相应列表中的每个处理程序:
EventEmitter.prototype.emit = function(type) {
// ...
var args = Array.prototype.slice.call(arguments, 1);
var listeners = this._events[type];
for (var i = 0, l = listeners.length; i < l; i++) {
listeners[i].apply(this, args);
}
return true;
// ...
EventEmitter.prototype.emit=函数(类型){
// ...
var args=Array.prototype.slice.call(参数,1);
var listeners=this.\u事件[类型];
for(var i=0,l=listeners.length;i
})
因此,当你说.emit('message',“Hello”)
时,args
将是[“Hello”]
,而监听器[i]。apply(this,args)
将把这个参数列表发送到你在中定义的函数(message){/*…*/}
。on
调用:这就是消息
变成Hello的方式
EventEmitter.prototype.emit = function(type) {
// ...
var args = Array.prototype.slice.call(arguments, 1);
var listeners = this._events[type];
for (var i = 0, l = listeners.length; i < l; i++) {
listeners[i].apply(this, args);
}
return true;
// ...