首页 > 解决方案 > Web-Worker 导入的脚本可以依次导入另一个脚本吗?

问题描述

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

child.js导入结果:

未捕获的语法错误:无法在模块外使用 import 语句

有没有办法在parent.js使用时实现导入webworker.js

标签: javascriptimportweb-worker

解决方案


您可以启动一个模块 Worker(目前仅在基于 Blink 的浏览器中可用)。

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

importScripts然后,您将直接从此工作脚本中的import parent.js代替您 ,这反过来将能够导入任何依赖项。

由于 StackSnippets 在源自空的 iframe 中,我必须将演示外包给这个plnkr


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


推荐阅读