利用 shortid 替代库 nanoid 配合 sharedworker和BroadcastChannel实现指定发送方的通信

原文链接: 利用 shortid 替代库 nanoid 配合 sharedworker和BroadcastChannel实现指定发送方的通信

上一篇: Broadcast_Channel_API 和worker 实现跨页面通信

下一篇: transform 同时修改多个动画属性的解决办法

shortid 官方建议使用 nanoid生成唯一键

https://github.com/ai/nanoid/

主要是使用该库生成一个id, 发送消息的时候带上, 接收的时候如果有这个id, 表示相应的promise执行完毕, 传入回调的数据

注意worker和channel中的数字转换过程中会被转成字符串.... 一定注意类型问题

整体思想是对每一个post生成一个id, 在worker相应的时候带上这个id, 然后在js中将该id对应的promise结束掉

在发送时可以附带指定的接收者数组, 只有接受者才能收到信息

对消息需要再次抽象, 比如查询自己的id和有哪些接收者这些是需要使用promise返回的, 但是发送是不需要的, 所以要设计不同的消息类型和消息中字段的含义, 对于webpack来说, worker中不能使用其他类库, 不然会在打包过程中带上webpack的require导致运行时失效, 估计只能使用import远程或者动态import解决

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值