javascript - 在 ES6 类中使用 EventEmitter

标签 javascript node.js inheritance ecmascript-6 eventemitter

我正在尝试让我自己的类中的 EventEmitter 在 ES6 中运行:

"use strict";
const EventEmitter = require('events');

class Client extends EventEmitter{

    constructor(token, client_id, client_secret, redirect_uri, code){
        super();
        this.token = token;
        this.client_id = client_id;
        this.client_secret = client_secret;
        this.redirect_uri = redirect_uri;
        this.code = code;
    }

    eventTest(){
        this.emit("event");
        console.log(this.token);
    }
}

let testClient = new Client(1,2,3,4,5);

testClient.eventTest();
testClient.on('event', () => {console.log('triggerd!')} );

但事件没有做任何事情^^

如果没有 ES6,我可以使用以下代码:

var util = require('util');
var EventEmitter = require('events').EventEmitter;

var Client = function(credentials) {
    var self = this;

    function eventTest() {
        self.emit('event');
    }
};

util.inherits(Client, EventEmitter);

有人知道如何在 ES6 中正确地做到这一点吗?

最佳答案

事件是同步的——你在听之前触发它。使用

const testClient = new Client(1,2,3,4,5);
testClient.on('event', () => {console.log('triggered!')} );
testClient.eventTest();

关于javascript - 在 ES6 类中使用 EventEmitter,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38280844/

相关文章:

javascript - 用于增强 HTML5 输入 [type=range] 的插件,例如 jquery-mobile slider

java - 使用继承时如何摆脱 instanceof 检查?

ruby-on-rails - ActiveRecord::SubclassNotFound:单表继承机制未能定位子类

c++ - 在 C++ 中,如何保存抽象类的列表?

javascript - 如何使用 Javascript 将页面中的每个 gif 图像替换为另一张图像

javascript - iPad 中加载框架时的 window.open() 不起作用

javascript - javascript回调函数中的参数从哪里来?

jquery - 在 Aurelia 中使用 Jquery 和 Typescript

javascript - 只能发出一个 GET 请求,没有错误 : "Can' t set headers after they are sent. "

php - 使用 PHP 循环的多个倒计时器