Web-Worker 导入的脚本能否依次导入另一个脚本?

Can a script imported by a Web-Worker in turn import another script?

webworker https://developer.mozilla.org/en-US/docs/Web/API/Web_Workers_API/Using_web_workers 使用的脚本模式是:

child.js 导入结果:

Uncaught SyntaxError: Cannot use import statement outside a module

webworker.js 使用时,有什么方法可以在 parent.js 中实现导入吗?

您可以启动 module Worker(目前仅适用于基于 Blink 的浏览器)。

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

然后,您将直接从这个工作脚本 import parent.js 而不是 importScripts,这将能够导入任何内容依赖。

由于 StackSnippets 在 null-origined iframe 中,我必须将演示外包给这个 plnkr


请注意,在这些浏览器中,您甚至可以在非模块 Worker 中使用来自 parent.js 的动态 import() 语句:plnkr , 但是 这在不支持模块 Workers.
的浏览器中仍然不起作用 对于这些,您只需要使用非模块脚本并在整个链中使用 importScripts 及其全局变量:plnkr.