当前位置: 首页 > news >正文

怎么用dw做网站长沙哪些公司做网站

怎么用dw做网站,长沙哪些公司做网站,wordpress仿果壳,中山网站seo发布订阅模式是什么 发布订阅模式是一种代码的设计模式#xff0c;它允许对象间进行松散耦合的通信。 发布者#xff08;Publishers#xff09;不会直接调用订阅者#xff08;Subscribers#xff09;#xff0c;相反#xff0c;它们通过事件通道发布消息#xff1b;订…发布订阅模式是什么 发布订阅模式是一种代码的设计模式它允许对象间进行松散耦合的通信。 发布者Publishers不会直接调用订阅者Subscribers相反它们通过事件通道发布消息订阅者通过注册监听事件通道上的消息来做出响应。 这种模式在事件驱动编程和异步编程中非常有用。 发布订阅模式怎么实现 发布订阅模式在前端开发中有广泛的应用。例如事件处理、状态管理库如 Redux、消息中间件、数据流控制等 1一个用于存储事件及其对应回调的事件中心。 2一个 on 方法用于订阅某个事件并将回调函数注册到事件中心中。 3一个 emit 方法用于发布某个事件并调用所有订阅该事件的回调函数。 4一个 off 方法用于解除订阅。 使用场景 发布-订阅模式可用于解耦复杂的代码逻辑例如 浏览器中的事件处理如点击输入等 背景任务和前台任务之间的通信 多模块或组件之间的通信。 高级实现 在实际开发中我们可能会用到一些更复杂的发布-订阅库比如 EventEmitter (Node.js 内置)、PubSubJS 等这些库提供了更具备鲁棒性的实现和更多特性。 代码 let eventEmitter {//事件中心events:{},//订阅事件on: function (eventName,callback){//如果事件不存在if(!this.events[eventName]){this.events[eventName] [];}this.events[eventName].push(callback);},//发布事件 事件触发emit:function (eventName,...args){// 事件不存在if(!this.events[eventName]){return ;}this.events[eventName].forEach(callback {callback(...args)})},//取消事件off:function (eventName,callback){if(this.events[eventName]){this.events[eventName] this.events[eventName].filter(ee!callback)}},/*** 这里的 args 并没有在 once 函数的参数列表中明确声明* 而是作为 onceWrapper 函数的一个内部变量通过剩余参数语法捕获。* 这是因为 onceWrapper 函数不知道它会接收多少个参数* 所以它使用 ...args 来捕获所有参数并将它们作为一个数组处理* 。然后它可以通过 callback(...args) 将这些参数传递给 callback 函数*///一次性订阅once:function (eventName,callback){const onceWrapper (...args){callback(...args)//执行一次后取消订阅this.off(eventName,onceWrapper)}this.on(eventName,onceWrapper)}}//示例 //用户定义的回调函数 function user1(msg){console.log(user1 ,msg); }function user2(msg){console.log(user2 ,msg); }function user3(msg){console.log(user3 ,msg);} //注册事件 eventEmitter.on(test,user1) eventEmitter.on(test,user2)//事件触发 eventEmitter.emit(test,这是一个测试)//取消订阅 eventEmitter.off(test, user1);// 发布 eventEmitter.emit(test, 这次只有 User2 收到消息);//一次性订阅注册 eventEmitter.once(once,user3)//事件触发两次 eventEmitter.emit(once,test by user3) eventEmitter.emit(once,test by user3)//没有输出
http://www.laogonggong.com/news/104968.html

相关文章:

  • 商业网站建设的方法东莞东坑网站设计
  • 网站是不是每年都要续费郑州汉狮做网站好不
  • 网站服务建设公司wordpress 插件修改
  • 建立网站的平台西安seo代运营
  • 网站域名使用怎么做待摊分录网络推广团队
  • 武安网站建设价格成都专业网站设计公司
  • 山东网站建站建设开发必备软件
  • 音乐网站开发文档撰写模板临海手机网站
  • 三亚婚纱摄影 织梦网站源码做那个网站的小编比较好
  • 快速网站模板公司app网站开发哪里有
  • 专门做特卖的网站是什么意思wordpress 文章点赞数
  • 网站seo设计百度搜索引擎官网
  • 网站空间和服务器的区别微信官方网站网址
  • 三明网站优化最专业的网站建设收费
  • 网站制作 呼和浩特wordpress导航栏链接没有生成
  • 购物网站每个模块主要功能河北一建停考
  • 胶南网站制作做任务游戏能赚钱的网站
  • 南京房地产网站建设网页制作与网站设计
  • 做代加工的网站发布达州网站开发
  • 网站开发的心得与体会盘锦网站建设优化
  • 济南最好的网站制作公司wordpress 文章id修改
  • 公司网站开发主流语言网站备案 查询
  • 网站建设最低要求温州城乡建设官网
  • 宜宾网站建设石家庄新钥匙做网站
  • 网站优化外包费用方案查一查网站
  • 江西住房和城乡建设网站网站建设需要企业
  • 大悟网站建设做机械设计的网站
  • 网站开发怎么实现用户一对一发文字图片租房网站开发报告
  • 福田网站设计公司网站建设报价分析
  • 网站建设语音wordpress会员支付系统