原文链接: 利用 shortid 替代库 nanoid 配合 sharedworker和BroadcastChannel实现指定发送方的通信
上一篇: Broadcast_Channel_API 和worker 实现跨页面通信
下一篇: transform 同时修改多个动画属性的解决办法
shortid 官方建议使用 nanoid生成唯一键
主要是使用该库生成一个id, 发送消息的时候带上, 接收的时候如果有这个id, 表示相应的promise执行完毕, 传入回调的数据
注意worker和channel中的数字转换过程中会被转成字符串.... 一定注意类型问题
整体思想是对每一个post生成一个id, 在worker相应的时候带上这个id, 然后在js中将该id对应的promise结束掉
在发送时可以附带指定的接收者数组, 只有接受者才能收到信息
对消息需要再次抽象, 比如查询自己的id和有哪些接收者这些是需要使用promise返回的, 但是发送是不需要的, 所以要设计不同的消息类型和消息中字段的含义, 对于webpack来说, worker中不能使用其他类库, 不然会在打包过程中带上webpack的require导致运行时失效, 估计只能使用import远程或者动态import解决