Web Workers - Как Импортировать Модули

Я использую модули импорта / экспорта ES2015.

в моем рабочем файле, когда я пытаюсь импортировать функции, как я обычно делаю:

работника.js

import { a, b, c } from "./abc.js";

Я получаю ошибку: SyntaxError: import declarations may only appear at top level of a module

как я экспортирую функции в моем модуле " abc.js', я не уверен, как использовать их, используя старый (и, по-видимому, на выходе) синтаксис:

self.importScripts( "/app/abc.js" );

Итак, мой вопрос в том, как мы используем новый синтаксис модуля импорта с рабочие?

второй вопрос, Что значит importScripts импорт в, когда он импортирует из модуля, в котором нет экспортируемого родителя глобального объекта?

1 ответов


модули es2015 в workers еще не поддерживаются ни в одном браузере.
Как только они это сделают, вы должны создать рабочий такой:

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

посмотреть: https://html.spec.whatwg.org/#module-worker-example

теперь вы должны использовать importScripts()

эти сообщения об ошибках для каждого браузера:
Firefox: https://bugzilla.mozilla.org/show_bug.cgi?id=1247687
Chromium: https://bugs.chromium.org/p/chromium/issues/detail?id=680046
Webkit: https://bugs.webkit.org/show_bug.cgi?id=164860
Edge: https://wpdev.uservoice.com/forums/257854-microsoft-edge-developer/suggestions/20469133-implement-worker-modules