# Worker

相关文档: 多线程 Worker

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

# 属性

# Object env

worker内的环境变量

属性 类型 说明
USER_DATA_PATH string 文件系统中的用户目录路径 (本地路径)

# 方法

# Worker.postMessage(Object message)

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

# Worker.terminate()

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

# Worker.testOnProcessKilled()

用于模拟 iOS ExperimentalWorker 线程被系统回收事件,以便于调试。接口仅在 worker 线程内可用。参考 Worker.onProcessKilled

# Worker.onMessage(function listener)

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

# Worker.onProcessKilled(function listener)

监听 worker线程被系统回收事件(开启 useExperimentalWorker 后,当iOS系统资源紧张时,ExperimentalWorker 线程存在被系统回收的可能,开发者可监听此事件并重新创建一个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()