84669 person learning
152542 person learning
20005 person learning
5487 person learning
7821 person learning
359900 person learning
3350 person learning
180660 person learning
48569 person learning
18603 person learning
40936 person learning
1549 person learning
1183 person learning
32909 person learning
var a=new require('events').EventEmitter() a.on('connection',fn); //这里a返回的值是不是就是EventEmitter对象
小伙看你根骨奇佳,潜力无限,来学PHP伐。
是的,这样一来,你就可以用链式的方法进行编写多个事件订阅。不过你的代码有点问题,建议修改为这样:
var EventEmitter = require('events').EventEmitter; var a = new EventEmitter(); a.on('connection',function(){}) .on("test", function(){});
先抛出结论:是的
原因:
var EventEmitter = require('events').EventEmitter; var a = new EventEmitter(); a.on('connection', function() {})
a.on在node中指向的是EventEmitter.prototype.addListener
a.on
EventEmitter.prototype.addListener
我们直接看调用堆栈
on实际上相当于调用了addListener
on
addListener
addListener的调用
_addListener的调用
_addListener
可以看到最终返回的是target,也就是addListener中的this,这里是我们EventEmitter的实例,也就是例子中的a
target
this
EventEmitter
是的,这样一来,你就可以用链式的方法进行编写多个事件订阅。不过你的代码有点问题,建议修改为这样:
先抛出结论:是的
原因:
a.on
在node中指向的是EventEmitter.prototype.addListener
我们直接看调用堆栈
on
实际上相当于调用了addListener
addListener
的调用_addListener
的调用可以看到最终返回的是
target
,也就是addListener中的this
,这里是我们
EventEmitter
的实例,也就是例子中的a