view-scroller
Version:
page scroller plugin
88 lines (87 loc) • 2.43 kB
TypeScript
interface busEv {
name: string;
isOnce: boolean;
callback: Function;
}
/**
* 自定义的事件总线
* 方法:
* on: 绑定一个事件
* once: 绑定一个一次性事件
* off: 移除一个事件
* emit: 触发一个事件
* use: 添加一个中间件
*/
export declare class EventBus {
eventArr: Array<any>;
useFunArr: any[];
constructor();
eventTpl: busEv;
/**
* 创建一个事件
* @param {String} name
* @param {Function} callback
* @return {eventTpl}
*/
private createEvent;
/**
* 获取事件
* @param {String} name
* @param {Function} fn
* @return {eventTpl}
*/
private getEvent;
/**
* 移除一个事件
* @param {String} name
* @param {Function} fn fn为空则全部移除
* @return {void}
*/
private removeEvent;
/**
* 移除一个事件, 同removeEvent
* @param {String} name
* @param {Function} fn fn为空则全部移除
* @return {void}
*/
off: (name: string, fn?: Function | undefined) => void;
/**
* 添加中间件
* @param {function(string, object, ()=>{})} fn 中间件函数 fn(name, packet, next)
* @return {void}
*/
private use;
/**
* 中间件过滤, 只有添加的中间件执行next(),
* 才会触发下一个中间件,
* 否则终止触发事件
* @param {String} name 触发事件名
* @param {Object} packet 触发事件传入的数据
* @return {boolean} b
*/
private useFilter;
/**
* 添加事件
* @param {String} name 事件名
* @param {Function} fn 执行的事件函数
* @param {boolean} cover 是否覆盖之前的事件
* @return {eventTpl}
*/
on: (name: string, fn: Function, cover?: boolean) => busEv;
/**
* 添加事件, 执行完立即立即销毁
* @param {String} name 事件名
* @param {Function} fn 执行的事件函数
* @param {boolean} cover 是否覆盖之前的事件
* @return {void}
*/
once: (name: string, fn: Function, cover?: boolean) => void;
/**
* 触发一个事件
* @param {String} name 事件名
* @param {Object} data 传入事件监听方法的数据
* @return {void}
*/
emit: (name: string, data: object) => void;
}
export {};