gpt4 book ai didi

javascript - 我可以使用 this.on 来监听 EventEmitter 中的事件吗?在 javascript 类中寻找 Eventmitter 的正确用法

转载 作者:行者123 更新时间:2023-12-03 06:06:18 26 4
gpt4 key购买 nike

我正在使用EventEmitter3这是我的 javascript 代码中的一个事件模块。它的工作原理就像 event Node.js 中的模块。但我在正确使用它方面遇到了问题。

通常,如果我在代码中使用该模块,我会创建 EventEmitter 的对象然后使用 object.emit触发事件和 object.on聆听事件。我通常做的是输入 object.on在另一个类中,所以它完美地工作。

现在我尝试在 ES6 类中组织我的代码。因此,我在自定义类中扩展了 EventEmitter 。假设它名为ClassA,它是EventEmitter的子类。如果我在类定义中监听它自己的事件,如下所示:

import EventEmitter from 'eventemitter3';

class ClassA extends EventEmitter {
constructor() {
...
}

method() {
this.emit('send');
}

this.on('send', function(data) {
// Do something with data
});
}

我在 this.on 上收到意外的 token 错误线。但我不确定如何在类内监听类(class)自己的事件,或者这是否可行?我是否必须将监听器放在类定义之外?

最佳答案

您需要将应该为每个实例运行的调用放入构造函数内:

class ClassA extends EventEmitter {
constructor() {
super()

this.on('send', data => {
// Do something with data
});
}

method() {
this.emit('send');
}
}

否则让实例的创建者监听事件,或者从类的方法中监听/取消监听。

关于javascript - 我可以使用 this.on 来监听 EventEmitter 中的事件吗?在 javascript 类中寻找 Eventmitter 的正确用法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39529154/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com