HarmonyOS 鸿蒙Next中Worker postMessage 消息无法发送到worker线程
HarmonyOS 鸿蒙Next中Worker postMessage 消息无法发送到worker线程
问题
按照官方指导使用worker机制时,发现从主线程使用postMessage发送消息,worker线程无法收到
官方指导
原因
加载 Worker.ts 时,需要区分大小写
问题发生步骤
备注:Stage模型开发
一, 使用DevEco Studio worker模版创建worker线程 ( 清单检查 )
-
entry/src/main/ets/workers/Worker.ts
-
build-profile.json5, 出现一个新的依赖, 如下worker.ts 虽然是小写,但不会造成任何影响
"buildOption": {
"sourceOption": {
"workers": [
'./src/main/ets/workers/worker.ts',
]
}
}
二, 使用worker线程
引发问题的地方: new worker.ThreadWorker(“entry/ets/workers/worker.ts”), 红色文件必须和实际的Worker.ts文件完全一致
import worker from '@ohos.worker';
//模版创建的文件实际是Worker.ts,首字母是大写,因此如下路径有误
//let wk = new worker.ThreadWorker("entry/ets/workers/worker.ts");
let wk = new worker.ThreadWorker("entry/ets/workers/Worker.ts");
// 发送消息到worker线程
wk.postMessage("message from main thread.")
// 处理来自worker线程的消息
wk.onmessage = function(message) {
console.info("message from worker: " + message)
}
更多关于HarmonyOS 鸿蒙Next中Worker postMessage 消息无法发送到worker线程的实战教程也可以访问 https://www.itying.com/category-93-b0.html
这是自己解决了是吗
更多关于HarmonyOS 鸿蒙Next中Worker postMessage 消息无法发送到worker线程的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html
项目名称
- 状态:已上线
- 技术栈:React, Node.js, MongoDB
描述
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nullam auctor, nisl nec ultrices malesuada, nunc nisl aliquet velit, vel lacinia sapien justo et nibh. Ut id urna euismod, bibendum nulla eu, placerat augue.
特性
- 用户管理
- 数据分析
- 实时通讯
在HarmonyOS鸿蒙Next中,Worker线程通过postMessage
与主线程通信。若消息无法发送到Worker线程,可能原因包括:
- Worker未正确初始化;
postMessage
方法调用时机不当;- Worker线程未监听
message
事件; - 消息格式不符合要求。
确保Worker已启动并正确监听消息,且消息为可序列化对象。检查代码逻辑,确保postMessage
在Worker初始化后调用。