首页 > 其他分享 >发布订阅

发布订阅

时间:2024-06-06 13:33:24浏览次数:21  
标签:订阅 const name click 发布 eventHub queueMap fn

  • JS实现发布订阅功能
// 发布订阅
const eventHub = {
  // 队列MAP, 存放事件名和触发事件
  queueMap: {},
  // 注册事件
  on: (name, fn) => {
    eventHub.queueMap[name] = eventHub.queueMap[name] || []
    eventHub.queueMap[name].push(fn)
  },
  // 触发事件
  emit: (name, data) => {
    const q = eventHub.queueMap[name]
    if (!q) return
    q.map(fn => fn.call(null, data))
  },
  // 取消事件
  off: (name, fn) => {
    const q = eventHub.queueMap[name]
    if (!q) return
    const index = q.indexOf(fn)
    if (index === -1) return
    q.splice(index, 1)
  }
}

eventHub.on('click', console.log)
eventHub.on('click', console.error)
eventHub.emit('click', 'jnp')

eventHub.off('click', console.log)

标签:订阅,const,name,click,发布,eventHub,queueMap,fn
From: https://www.cnblogs.com/codejnp/p/18234975

相关文章

  • 英特尔发布了性能最强的新一代Gaudi3 Al算力加速芯片
    英特尔发布的性能最强的新一代Gaudi3AI加速芯片具有显著的性能提升和多项优势。以下是关于该芯片的详细信息和特点:性能提升:与NVIDIAH100GPU相比,Gaudi3在推理速度上提高了50%,效率提高了40%。在算力训练性能方面,与NVIDIAH100相比,Gaudi3提高了170%。FP8AI计算性能是......
  • react中推荐使用发布订阅模式,进行跨多层级的组件间通信和事件传递吗?
    在React中,虽然发布订阅模式(Pub/Sub)可以作为一种实现跨多层级组件间通信的方法,但它并不是React官方推荐的主要手段,尤其是在ReactHooks和ContextAPI普及之后。React推荐的跨组件通信方法主要包括:Propsdrilling:最直接的方式,通过props从父组件向子组件传递数据,适合简单的数据流......
  • Sql数据库利用linkserver和 CT[CHANGE_TRACKING]实现发布订阅
    源服务器初始化同步数据表SELECT*INTO【用于同步数据的表名】FROM( SELECTtop0 CT.SYS_CHANGE_VERSION, CT.SYS_CHANGE_OPERATION, CT.【同步数据表的主键ID】 FROMCHANGETABLE(CHANGES源数据表名,0)ASCT)t创建获取同步数据存储......
  • RFS_Server_06 上传并发布数据
    操作描述:云服务器Ubuntu20.04系统Docker中有两个容器:Postgres容器和GeoServer容器。将数据存储至Postgres数据库容器中,并通过GeoServer连接,发布地图服务。此文档中使用的Postgres数据库名称为pg01,GeoServer服务器名称为geoserver01。1    基础操作:使用工具连接云服务器Docke......
  • Zibll子比主题美化WordPress底部添加渐变色统计代码 新增显示评论总数及本周发布文章
    在网站底部添加一个统计信息,可以看到网站的运营情况,如会员数量,文章数量、网站的总浏览量、当天发布的文章数量、网站运营天数等,并且这个统计信息背景是渐变色的,非常漂亮。之前有分享过这个代码,今天新增了一个显示评论总数,把今天发布文章数量我改为了本周发布的数量,如果需要之前......
  • iOS 18 Beta版将于下周发布:预计将带来这25项新功能
    iOS18即将发布,苹果将在6月10日(北京时间6月11日凌晨1点)的WWDC主题演讲中发布软件更新,预计将推出许多新功能和变化。iOS18的第一个测试版应该会在WWDC主题演讲后立即向Apple开发者计划的成员提供,公开测试版可能会在7月发布。该更新应该会在9月向所有用户广泛发布,据传它将与iOS1......
  • 期末考试后,老师如何发布期末成绩给学生家长查看
    当期末的脚步悄然临近,作为班主任,深知期末成绩的发布不仅关系到学生和家长的期待,更是教学成果的重要体现。那么,有没有一种方法,既能保护学生隐私,又能方便家长和学生查询成绩呢?答案是肯定有的。向各位同行介绍一款名为“易查分”的神器。一个将Excel电子表格转换为在线查询页面......
  • 迪普微震撼发布:全新Xilinx Kintex-7 XC7K325 FPGA开发板!
    01产品概述本公司基于XilinxKintex-7系列的开发平台采用核心板加扩展主板的方式,方便用户对相关板卡的二次开发利用。其中,核心板包含一片芯片XC7K325T,使用FFG900封装,外挂4片512MB的高速DDR3芯片和1片256Mb的QSPIFlash芯片。在扩展板上我们设计了丰富的外围接口,比如PCIeG......
  • Gitlab Runner在Windows如何自动发布基于.NET Framework 4.8的传统ASP.NET Web应用程
    摘要软件流水线能把程序员从繁琐的发布工作中解脱出来,但是跑在WindowsIIS里的传统Web应用程序,用Docker的方式不是最方便的。本文详细描述如何用Windows的OpenSSHServer来上传网站后,用PowerShell创建和修改IIS的虚拟目录应用程序。一、自动打包传统ASP.NETWeb应用程序1、Gitl......
  • 发布一个包到npm
    1、准备要发布的包需要发布的包(代码)和.gitignore文件忽略node_modules等README描述文件package.json中配置包名、版本号、作者等信息       package.json例:{"name":"array-is-subset",//包名(npm上没有的包名)"version":"1.0.0",//版本号"author":......