收藏
回答

多线程worker的postMessage和onMessage是一对一还是一对多

问题模块 框架类型 问题类型 API/组件名称 终端类型 操作系统 微信版本 基础库版本
API和组件 小程序 需求 worker 客户端 6.6.7 2.1.0

小程序中worker实例只能存在一个,这个worker的postMessage()和onMessage()是一对一还是一对多?

打个比方:在worker线程中使用postMessage()每隔一段时间发送一个心跳消息(如{isReport:false,heartBeat:true}),这个消息在A页面可以使用onMessage()接收到,然后A页面根据worker消息中的isReport字段判断是否处理某些逻辑;而在B页面需要使用worker消息中的另一个字段去控制另外一个逻辑(如断网重连等),这时候发现B页面的onMessage()无法响应...

文档中并没有对worker多线程做过多的介绍,所以想问:worker的postMessage()和onMessage()是一对一还是一对多?

worker在app.js中实例化,然后页面内根据app.worker && app.worker.onMessage()捕获子线程消息

最后一次编辑于  2018-08-10  (未经腾讯允许,不得转载)
邀请回答
复制链接收藏投诉关注问题回答

1 个回答

  • June
    June
    2018-08-13

    目前onMessage只能注册一个回调,所以建议统一接收到message后再分发到各个页面吧。

    2018-08-13
    赞同
    回复 1
    • 尚
      2018-08-14

      嗯,非常感谢你的回复!

      目前也是以这种方案解决的

      2018-08-14
      回复