Fox-Listener
Pub/Sub model realize by es6
这是一个小小的工具项目
发布订阅模式(观察者模式)的 es6实现
install
npm i fox-listener --save
Use
基本的发布订阅
; const foxListener = ; foxListener; // do something ... foxListener;
可以使用命名空间
; const foxListener = ; foxListener; foxListener; // do something ... foxListener; // Owen 睡觉了
如果执行类目,则将全部匿名空间执行
; const foxListener = ; foxListener; foxListener; // do something ... foxListener; // Owen 说话了// Owen 睡觉了
可以使用unsubscribe 取消订阅的项目
; const foxListener = ; foxListener; foxListener; // do something ... foxListener; // throw Error The Event didnt bind !
如果 取消的是总类目,那么命名空间下订阅的内容也全部会被销毁
; const foxListener = ; foxListener; foxListener; foxListener; // do something ... // 即使删除的是Event 旗下的say类也会被删除清空 foxListener;// throw Error The Event didnt bind !
使用once函数,订阅的项目可以只执行一次就销毁。
; const foxListener = ; foxListener; // do something ... foxListener; // Owen 说话了 foxListener; // throw Error The Event didnt bind !
浅绑定
; const foxListener = ; let data = name: firstName: 'Brown' lastName: 'Owen' hobby: 'sanguosha' 'movie' address: compony: 'Baidu.Inc' info: compony_address: '上地十街' home_address: 'blablabla' listener datanamefirstName = 'Tim';console; // TimBlue;
深绑定
; const foxListener = ; let data = name: firstName: 'Brown' lastName: 'Owen' hobby: 'sanguosha' 'movie' address: compony: 'Baidu.Inc' info: compony_address: '上地十街' home_address: 'blablabla' listener dataaddresscompony = 'Tencent';dataaddressinfocompony_address = '南山科技园'; console; //'Tencent_wait'console; //'南山科技园_wait';
licence
MIT