首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何包装emitter.on(eventName)?

如何包装emitter.on(eventName)?
EN

Stack Overflow用户
提问于 2019-12-03 10:03:15
回答 3查看 51关注 0票数 0
代码语言:javascript
复制
const myEmitter = new MyEmitter();
myEmitter.on('event', (a) => {
  console.log('an event occurred! ' + a);
});
myEmitter.emit('event', "a");

我如何才能改变

代码语言:javascript
复制
myEmitter.on('event', (a) => {
   console.log('an event occurred! ' + a);
});

类似这样的东西

代码语言:javascript
复制
onEvent((a) => console.log('an event occurred! ' + a))

我希望在事件(‘myEmitter.on’)周围有一个包装器,所以我的onEvent本质上只是调用myEmitter.on('event')。这有可能吗?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2019-12-03 10:06:59

代码语言:javascript
复制
const onEvent = cb => myEmitter.on('event', cb);

如果您想要处理不同的事件,也可以执行以下操作:

代码语言:javascript
复制
const on = (event, cb) => myEmitter.on(event, cb);
on('event', () => console.log('an event occurred!'));
票数 1
EN

Stack Overflow用户

发布于 2019-12-03 10:05:02

如下所示:

代码语言:javascript
复制
const onEvent = (callback) => {
  myEmitter.on('event', callback);
};
票数 1
EN

Stack Overflow用户

发布于 2019-12-03 11:19:47

您可以创建一个自定义事件,如下所示。

代码语言:javascript
复制
var createEvent = (eventName)=>(callback)=>myEmitter.on(eventName, callback);
let event1 = createEvent('event1');
event1((a)=>{
   console.log('Event Occurred!', a);
});
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/59149199

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档