我正在使用 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" );
所以,我的问题是,我们如何对工作人员使用新的导入模块语法?
第二个问题是,什么是importScripts
import 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(使用前将#替换为@)