# mgp-event **Repository Path**: dszj/mgp-event ## Basic Information - **Project Name**: mgp-event - **Description**: 订阅者发布者设计模式的js实现 - **Primary Language**: JavaScript - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2017-03-16 - **Last Updated**: 2020-12-18 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README #mgp-event 支持commonjs标准和浏览器环境 ```javascript MgpEvent.reg=function(eventKey,id,callback) //注册一个事件(真正的表述应该是订阅一个事件) //eventKey:事件的名字 //id:一个唯一标识,卸载事件回调的时候需要 ``` ```javascript MgpEvent.trigger=function(eventKey,data) //触发一个事件(即发布一个消息) //eventKey:要触发的事件的名字 //data:传给事件回调的参数 ``` ```javascript MgpEvent.off=function(eventKey,id) //卸载掉一个事件的回调(取消一个消息的订阅) //eventKey:将要操作的事件的名字 //id:与回调函数对应的唯一标识 ``` ```javascript MgpEvent.clear=function(eventKey) //清除一个事件的所有的回调(停止发布消息,并删除所有订阅者) //eventKey:事件的名字 ``` ##使用的例子 ```javascript //注册一个事件,名字就叫做"data.load.complete",意思是数据加载完毕 MgpEvent.reg('data.load.complete','dlc0',function(data){ console.log('第一个回调(订阅者),加载数据成功,数据:'+data); }) MgpEvent.reg('data.load.complete','dlc1',function(data){ console.log('第二个回调(订阅者),加载数据成功,数据:'+data); }) ``` 假如这时候数据加载完了,需要触发事件 MgpEvent.trigger('data.load.complete','Hello,ashole'); 这时候之前的两个回调函数会依次执行