You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

Deno v1.19.0中SharedWorker未定义问题及Web Workers API支持情况咨询

Deno v1.19.0 中 SharedWorker 未被支持的说明

先直接给你明确结论:在 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

火山引擎 最新活动