/**
* 简单发布订阅
* @param {Object}} callback
* @returns
*/
export const Observable = {
queue: {},
subscribe: function (event, callback) {
if (!this.queue[event]) {
this.queue[event] = [];
}
this.queue[event].push(callback);
return () => {
this.queue[event] = null;
}
},
publish: function (event, options = {}) {
(this.queue[event] || []).forEach((callback) => {
callback.call(null, options);
});
}
}
使用如下:
// 订阅方
this.unSubscriber = Observable.subscribe('swipe',(visible) => {
// 操作代码
console.log(visible); // true
})
componentWillUnmount() {
// 清空任务队列
this.unSubscriber();
}
// 发布方
Observable.publish('swipe', true)