Javascript ES6类事件发射器
有人能告诉我一个合适的EventEmitter(ES6)在不同的类中全局使用emit事件吗?最好举个例子?我找到了不少,但没有一个在课间有工作示例 我想要一个单身的,这样我就不必扩展它了 例如(非真实代码):Javascript ES6类事件发射器,javascript,events,ecmascript-6,Javascript,Events,Ecmascript 6,有人能告诉我一个合适的EventEmitter(ES6)在不同的类中全局使用emit事件吗?最好举个例子?我找到了不少,但没有一个在课间有工作示例 我想要一个单身的,这样我就不必扩展它了 例如(非真实代码): 提前谢谢 RxJS主题可以充当通用事件发射器。单例模式自然由JS模块处理,因为它们只被评估一次,因此不特定于事件发射器类实现 RxJS 6中就是这样做的: import { Subject } from 'rxjs'; import { filter } from 'rxjs/operat
提前谢谢 RxJS主题可以充当通用事件发射器。单例模式自然由JS模块处理,因为它们只被评估一次,因此不特定于事件发射器类实现 RxJS 6中就是这样做的:
import { Subject } from 'rxjs';
import { filter } from 'rxjs/operators';
export const filterEvent = event => filter(e => e.event === event);
export default new Subject();
RxJS
Subject
在中使用
有几个学科类别有其独特的特点,在某些情况下可能是首选
Subject
类可以扩展为pipe(filter(…)
例程提供语法糖,如果需要的话。类似的东西?确实找到了,但您仍然需要扩展它。我会试一试的,谢谢!我也找到了这个,;大致相同的用法为什么它作为一个单件工作会如此重要?您可以自己做这件事:export const myEmitter=new StandardEventEmitter()在singletonemitter.js中,然后从文件中的“singletonemitter”导入{myEmitter}
。实际上,任何事件发射器库都可以做到这一点。
import { Subject } from 'rxjs';
import { filter } from 'rxjs/operators';
export const filterEvent = event => filter(e => e.event === event);
export default new Subject();
import emitter, { filterEvent } from './emitter';
emitter
.pipe(filterEvent('foo'))
// or
// .pipe(filter(({ event }) => event === 'foo')))
.subscribe(e => {
console.log(e.data)
});
emitter.next({ event: 'foo', data: {...} });