Web Workers - 如何导入模块

2023-12-07

我正在使用 ES2015 导入/导出模块。

在我的工作文件中,当我尝试像平常一样导入函数时:

工人.js

import { a, b, c } from "./abc.js";

我收到错误:SyntaxError: import declarations may only appear at top level of a module

当我在模块“abc.js”中导出函数时,我不确定如何使用旧的(显然即将淘汰)语法来使用它们:

self.importScripts( "/app/abc.js" );

所以,我的问题是,我们如何对工作人员使用新的导入模块语法?

第二个问题是,什么是importScriptsimport into 当它从模块导入时,哪里没有导出全局对象父级?


Workers 中的 ES2015 模块可在 Safari 和 Chromium 浏览器中使用。

如果您的目标是其他浏览器/版本,您仍然需要使用importScripts().

如果可用,您可以像这样创建一个模块工作人员:

new Worker("worker.js", { type: "module" });

See: https://html.spec.whatwg.org/multipage/workers.html#module-worker-example

这些是每个浏览器的错误报告:

  • Firefox:
    Workers: 自版本 114 起可用 ✔️
    服务人员: 开发中????
  • 铬浏览器:
    敬业的工人: 自版本 80 起可用 ✔️
    共享工作者: 自版本 83 起可用 ✔️
    服务人员: 自版本 91 起可用 ✔️
  • Webkit:
    Safari 桌面:自 Safari 14.1 起可用 ✔️
    Safari 移动版(iOS):自 Safari 15 起可用 ✔️

相关的 Can I Use 实时兼容性数据:https://caniuse.com/?search=module%20worker

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Web Workers - 如何导入模块 的相关文章

随机推荐