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()