>  Q&A  >  본문

javascript - 关于node。js里面event 模块中 EventEmitter对象on方法返回的值

var a=new require('events').EventEmitter()
a.on('connection',fn);
//这里a返回的值是不是就是EventEmitter对象
伊谢尔伦伊谢尔伦2771일 전359

모든 응답(2)나는 대답할 것이다

  • PHP中文网

    PHP中文网2017-04-11 12:07:53

    是的,这样一来,你就可以用链式的方法进行编写多个事件订阅。不过你的代码有点问题,建议修改为这样:

    var EventEmitter = require('events').EventEmitter;
    var a = new EventEmitter();
    a.on('connection',function(){})
     .on("test", function(){});

    회신하다
    0
  • 巴扎黑

    巴扎黑2017-04-11 12:07:53

    先抛出结论:是的

    原因:

    var EventEmitter = require('events').EventEmitter;
    var a = new EventEmitter();
    a.on('connection', function() {})

    a.on在node中指向的是EventEmitter.prototype.addListener

    我们直接看调用堆栈

    on实际上相当于调用了addListener

    addListener的调用

    _addListener的调用

    可以看到最终返回的是target,也就是addListener中的this,
    这里是我们EventEmitter的实例,也就是例子中的a

    회신하다
    0
  • 취소회신하다