@mini-code/base-func
Getting Started / 开始Array / 数组Number / 数字处理Call / 调用Datetime / 时间处理Debounce / 防抖EventEmitter / 订阅发布使用构造新实例继承扩展Filter / 过滤器Generation / 数据产出Money / 金钱处理Other / 其他

EventEmitter / 订阅发布

basic-helper 提供订阅发布机制,用于取代需要依赖 documentCustomEvent

触发广播
移除广播
监听

使用

可以在任意位置使用

import { EventEmitter } from 'basic-helper';
const handleEvent = (emittedData) => {
console.log(emittedData)
}
EventEmitter.on('EVENT_NAME', handleEvent);
EventEmitter.emit('EVENT_NAME', {
state: 'success'
});

构造新实例

可以构造一个全新的订阅发布对象

import { EventEmitterClass } from 'basic-helper';
const EventEmitter = new EventEmitterClass();
const handleEvent = (emittedData) => {
console.log(emittedData)
}
EventEmitter.on('EVENT_NAME', handleEvent);
EventEmitter.emit('EVENT_NAME', {
state: 'success'
});

继承扩展

通过继承 EventEmitterClass,获取订阅发布能力。以下为异步请求类的封装

import { EventEmitterClass } from 'basic-helper';
class Request extends EventEmitterClass {
constructor() {
super();
}
post() {
fetch('url')
.then(res => res.json())
.then(res => {
this.emit('onPostRes')
})
}
}
const $R = new Request();
const handlePostRes = () => { /* ... */ };
$R.on('onPostRes', handlePostRes); // 可以轻松在任意地方做 post 的 hook
$R.post();