【愚公系列】2022 年 11 月 微信小程序 -app.json 配置属性之 Worker
一、app.json 配置属性之 Worker
我们知道 js 是单线程的,在有时候需要处理一些密集计算或者是高延迟的时候,总会出现不便。而且,现在的 cpu 都是多核的,单线程也无法充分发挥电脑的计算能力。正是基于这种情况,才有了 worker 的诞生。
一些异步处理的任务,可以放置于 Worker 中运行,待运行结束后,再把结果返回到小程序主线程。Worker 运行于一个单独的全局上下文与线程中,不能直接调用主线程的方法。
Worker 与主线程之间的数据传输,双方使用 Worker.postMessage() 来发送数据,Worker.onMessage() 来接收数据,传输的数据并不是直接共享,而是被复制的。
二、配置
1.app.json
在 app.json 中配置 worker 目录
如下图:
2.子线程
3.主线程
4.监听回收事件
5. 注意事项
Worker 最大并发数量限制为 1 个,创建下一个前请用 Worker.terminate() 结束当前 Worker
Worker 内代码只能 require 指定 Worker 路径内的文件,无法引用其它路径
Worker 的入口文件由 wx.createWorker() 时指定,开发者可动态指定 Worker 入口文件
Worker 内不支持 wx 系列的 API
Workers 之间不支持发送消息
Worker 目录内只支持放置 JS 文件,其他类型的静态文件需要放在 Worker 目录外
基础库 v2.18.1 开始支持在插件内使用 worker。相应地,插件使用 worker 前需要在 plugin.json 内配置 workers 代码路径,即一个相对插件代码包根目录的路径。
版权声明: 本文为 InfoQ 作者【愚公搬代码】的原创文章。
原文链接:【http://xie.infoq.cn/article/4ced92ad3caba29ffa7bf7957】。文章转载请联系作者。
评论