Deno v1.19.0中SharedWorker未定义问题及Web Workers API支持情况咨询
先直接给你明确结论:在 Deno v1.19.0 版本里,SharedWorker 确实没有被实现,这就是你遇到 ReferenceError: SharedWorker is not defined 错误的根本原因。
关于这个信息的来源,我整理了几个可信的渠道:
- 你参考的 Deno 手册第 3.6 章(Workers)全程只围绕 Dedicated Worker(即
Worker类)展开讲解,没有任何关于 SharedWorker 的示例、配置说明或支持声明——这种“只字不提”本身就是明确的信号,说明该特性尚未被纳入当前版本的实现范围。 - 查看 Deno 的官方功能追踪渠道(比如 GitHub 仓库的议题),搜索“SharedWorker”能找到多个开发者提交的支持请求,其中官方维护者明确表示该特性目前不在优先开发计划中,尚未完成实现。
- Deno 的内置 API 兼容性列表里,也明确标记了 SharedWorker 属于未支持的 Web Workers 子API。
至于为什么会产生误解,确实和 Deno 文档的表述有关:文档引用 MDN 的 Web Workers 页面是为了让开发者快速理解通用的 Web Workers 概念,但这并不代表 Deno 实现了该 API 的所有子类型。这种“宣称支持大 API,但仅实现部分子特性且未明确标注”的情况,在 Deno 的迭代过程中确实存在,就像你之前遇到的 Shared Memory Arrays 仅在 v1.9.0 后才正常工作的例子一样。
如果现在需要实现多上下文共享 Worker 的功能,你可以试试在 Dedicated Worker 基础上自行封装:比如创建一个中心 Worker 实例,让多个主线程或其他 Worker 通过消息端口与它建立连接,手动管理消息的路由和转发,以此模拟 SharedWorker 的核心能力。
内容的提问来源于 stack exchange,提问作者 Walter




