84669 人が学習中
152542 人が学習中
20005 人が学習中
5487 人が学習中
7821 人が学習中
359900 人が学習中
3350 人が学習中
180660 人が学習中
48569 人が学習中
18603 人が学習中
40936 人が学習中
1549 人が学習中
1183 人が学習中
32909 人が学習中
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