Worker

Worker 实例,主线程中可通过 wx.createWorker 接口获取,worker 线程中可通过全局变量 worker 获取。

方法

Worker.postMessage(Object message)

向主线程/Worker 线程发送的消息。

Worker.terminate()

结束当前 Worker 线程。仅限在主线程 worker 对象上调用。

Worker.onMessage(function callback)

监听主线程/Worker 线程向当前线程发送的消息的事件。

Worker.onProcessKilled(function callback)

监听 worker线程被系统回收事件(当iOS系统资源紧张时,worker线程存在被系统回收的可能,开发者可监听此事件并重新创建一个worker)。仅限在主线程 worker 对象上调用。

示例代码

运行以下代码需先进行基础配置,详细请查阅 小程序多线程 | 小游戏多线程 文档了解基础知识和配置方法。

const worker = wx.createWorker('workers/request/index.js') // 文件名指定 worker 的入口文件路径,绝对路径

worker.onMessage(function (res) {
  console.log(res)
})
// 监听worker被系统回收事件
worker.onProcessKilled(function () {
  console.log('worker has been killed')
  // 重新创建一个worker
  // wx.createWorker()
})

worker.postMessage({
  msg: 'hello worker'
})

worker.terminate()