123456789101112131415161718192021222324252627282930313233343536373839404142434445 |
- var events = {};
- /**
- * 订阅
- */
- function on(name,self,callback){
- var tuple = [self,callback]
- var callbacks = events[name]
- if(Array.isArray(callbacks)){
- callbacks.push(tuple)
- }
- else{
- events[name] = [tuple]
- }
- }
- /**
- * 取消订阅
- */
- function remove(name,self){
- var callbacks = events[name]
- if(Array.isArray(callbacks)){
- events[name] = callbacks.filter((tuple) => {
- return tuple[0] != self
- })
- }
- }
- /**
- * 发出
- */
- function emit(name,data){
- var callbacks = events[name]
- if(Array.isArray(callbacks)){
- callbacks.map((tuple) =>{
- var self = tuple[0]
- var callback = tuple[1]
- callback.call(self,data)
- })
- }
- }
- exports.on = on
- exports.remove = remove
- exports.emit = emit
|