小编ryo*_*gi1的帖子

如何在 Web Worker 中导入另一个 JS 文件?

我有一个 WebWorker,我想在其中使用另一个现有 JavaScript 文件中的函数。我尝试了不同的方法来导入 JS 文件,但到目前为止都没有奏效。有问题的文件位于另一个目录中,相关路径为“../pkg/benchmark.js”。

有没有人知道如何做到这一点?

我尝试了以下方法:

方法一:

import * as myFile from '../pkg/benchmark.js';
Run Code Online (Sandbox Code Playgroud)

这给出了错误:

Uncaught SyntaxError: Unexpected token *
Run Code Online (Sandbox Code Playgroud)

方法二:

import { myFunc1, myFunc2 } from '../pkg/benchmark.js';
Run Code Online (Sandbox Code Playgroud)

给出错误:

Uncaught SyntaxError: Unexpected token {
Run Code Online (Sandbox Code Playgroud)

方法 3: 使用 importScripts()

importScripts('../pkg/benchmark.js');
Run Code Online (Sandbox Code Playgroud)

给出错误:

worker_wasm.js:6 Uncaught DOMException: Failed to execute importScripts' on 'WorkerGlobalScope': The script at http://localhost:8080/pkg/benchmark.js' failed to load. 
Run Code Online (Sandbox Code Playgroud)

方法四: 使用动态导入:

import('../pkg/benchmark.js')
    .catch(e => console.error(e));
Run Code Online (Sandbox Code Playgroud)

给出错误:

TypeError: Failed to fetch dynamically imported module: http://localhost:8080/pkg/benchmark.js
Run Code Online (Sandbox Code Playgroud)

由于我使用的是 npm,所以应该提到在 package.json 中我已经定义了依赖项

"dependencies": {
    "benchmark": "file:../pkg" …
Run Code Online (Sandbox Code Playgroud)

javascript web-worker javascript-import

5
推荐指数
0
解决办法
963
查看次数

标签 统计

javascript ×1

javascript-import ×1

web-worker ×1