Worker¶
- wx.createWorker(scriptPath)¶
1.9.90 新版功能: 低版本需做 兼容处理 。
创建一个 Worker 线程。目前限制最多只能创建一个 Worker,创建下一个
Worker()
前请先调用Worker.terminate()
- 参数
scriptPath (
string()
) – worker 入口文件的绝对路径
- 返回
Worker()
对象
- class Worker()¶
Worker 实例,主线程中可通过
wx.createWorker()
接口获取,worker 线程中可通过全局变量 worker 获取。
方法¶
- Worker.postMessage(message)¶
向主线程/Worker 线程发送的消息。
- 参数
message (
Object()
) – 需要发送的消息,必须是一个可序列化的 JavaScript key-value 形式的对象。
- 示例
worker 线程中
worker.postMessage({ msg: 'hello from worker' })
主线程中
const worker = wx.createWorker('workers/request/index.js') worker.postMessage({ msg: 'hello from main' })
- Worker.terminate()¶
结束当前 Worker 线程。仅限在主线程 worker 对象上调用。
- Worker.onMessage(callback)¶
监听主线程/Worker 线程向当前线程发送的消息的事件。
- 参数
callback(message) (
function()
) –主线程/Worker 线程向当前线程发送的消息
message Object 主线程/Worker 线程向当前线程发送的消息
示例代码¶
运行以下代码需先进行基础配置,详细请查阅 多线程 文档了解基础知识和配置方法。
const worker = wx.createWorker('workers/request/index.js') // 文件名指定 worker 的入口文件路径,绝对路径
worker.onMessage(function (res) {
console.log(res)
})
worker.postMessage({
msg: 'hello worker'
})
worker.terminate()