[英]Can a script imported by a Web-Worker in turn import another script?
网络工作者使用的脚本模式https://developer.mozilla.org/en-US/docs/Web/API/Web_Workers_API/Using_web_workers是:
webworker.js
importScripts('./parent.js')
parent.js
import { PerfManager} from "./child.js";
child.js
导入结果:
未捕获的语法错误:无法在模块外使用导入语句
有什么办法来实现内的进口parent.js
被使用时webworker.js
?
您可以启动一个 模块 Worker (目前仅在基于 Blink 的浏览器中可用)。
const worker = new Worker("worker.js", { type: "module" });
然后,您将直接从这个工作脚本import
parent.js ,而不是importScripts
,这将能够导入任何依赖项。
由于 StackSnippets 在源自 null 的 iframe 中,我必须将演示外包给这个plnkr 。
请注意,在这些浏览器中,即使在非模块 Worker 中,您甚至可以使用parent.js 中的动态import()
语句: plnkr ,但这在不支持模块 Workers 的浏览器中仍然不起作用。
对于这些,您只需要使用非模块脚本,并在整个链中使用importScripts
及其全局变量: plnkr 。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.