浏览器端是否有任何EventEmitter在nodejs中具有类似的逻辑?

问题描述 投票:10回答:3

在node.js中使用eventEmitter非常容易:

var e = new EventEmitter();
e.on('happy', function(){console.log('good')});
e.emit('happy');

浏览器原生的任何客户端EventEmitter?

javascript browser
3个回答
19
投票

在现代浏览器中,有EventTarget。

class MyClass extends EventTarget {
  doSomething() {
    this.dispatchEvent(new Event('something'));
  }
}

const instance = new MyClass();
instance.addEventListener('something', (e) => {
  console.log('Instance fired "something".', e);
});
instance.doSomething();

其他资源:


1
投票

在客户端中创建自定义事件,并附加到dom元素:

var event = new Event('build');

// Listen for the event.
elem.addEventListener('build', function (e) { /* ... */ }, false);

// Dispatch the event.
elem.dispatchEvent(event);

这可以参考:https://developer.mozilla.org/en-US/docs/Web/Guide/Events/Creating_and_triggering_events感谢Naeem Shaikh


-3
投票

你需要一个JavaScript库,比如这个https://github.com/Olical/EventEmitter

© www.soinside.com 2019 - 2024. All rights reserved.