多线程worker的postMessage和onMessage是一对一还是一对多
发布于 5 年前 作者 yinchao 7737 次浏览 来自 问答

小程序中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()捕获子线程消息

1 回复

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

回到顶部