javascript - Web-Worker 导入的脚本可以依次导入另一个脚本吗?
问题描述
webworker 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
导入结果:
未捕获的语法错误:无法在模块外使用 import 语句
有没有办法在parent.js
使用时实现导入webworker.js
?
解决方案
您可以启动一个模块 Worker(目前仅在基于 Blink 的浏览器中可用)。
const worker = new Worker("worker.js", { type: "module" });
importScripts
然后,您将直接从此工作脚本中的import
parent.js代替您 ,这反过来将能够导入任何依赖项。
由于 StackSnippets 在源自空的 iframe 中,我必须将演示外包给这个plnkr。
请注意,在这些浏览器中,您甚至可以在非模块 Worker: plnkr中使用来自parent.jsimport()
的动态语句,但这在不支持模块 Workers 的浏览器中仍然不起作用。
对于这些,您只需要使用非模块脚本并在整个链中使用它的全局变量:plnkr。importScripts
推荐阅读
- c# - 模拟 HttpActionContext C#
- akamai - 设置配额使用警报
- android - 如何在android中使用viewModelScope.launch从IO线程不时更新UI
- blockchain - Aeternity 中的跨合约调用
- php - 如何在 laravel 7 中创建 3 个表之间的关系?
- r - 如何根据特定列条件添加行值?
- python - 我试图转换数据类型,但它不起作用。TypeError:列表索引必须是整数或切片,而不是字典
- c++ - C++ 字符串到字节
- r - 尝试选择列表中的特定行时出错
- java - 如何在 oauth2 app spring boot 中正确设置用户角色