Модуль WASM не загружен внутри веб-воркера

Мне не удается загрузить простую функцию WASM, которая суммирует два числа, внутри моего веб-воркера.

Я попробовал это в своем основном/индексном скрипте, который работает нормально. Однако перемещение кода в веб-воркер нарушает код. Похоже, что код sum() не выполняется внутри моего веб-воркера. Однако я не получаю никаких полезных журналов или сообщений об ошибках для дальнейшей отладки кода. Для лучшего понимания вот мой пример-репозиторий

Например, запуск кода Vite показывает мне следующие журналы:

[vite] connecting... client.ts:19:8
Message posted to worker with numbers 1 and 2. main.ts:13:10
[vite] connected. client.ts:175:14

Я бы ожидал, что здесь будет больше строк журнала, как только будет выполнен postMessage() в веб-воркере. Кажется, что веб-воркер останавливается при вызове модуля wasm.

Есть идеи? Спасибо!

Обновлять:

Кажется, проблема со временем (по крайней мере, для плагина Vite). Установка точки останова в основном скрипте дает мне все желаемые выходные данные консоли:

Message posted to worker with numbers 1 and 2.
worker.ts:4 Worker is calculating with data... {number1: 1, number2: 2}
main.ts:20 Message received, sum is:  3

Однако не похоже, что это исправляет модуль веб-пакета. Кроме того, я не знаю, почему это происходит и как это исправить без точек останова...

Нет идей, что мне стоит посмотреть?

Theiaz 23.05.2024 08:16
Поиск всех неиспользуемых файлов в проекте
Поиск всех неиспользуемых файлов в проекте
Количество файлов в проекте растет по мере его развития. И если быть по-настоящему честным, их продвижение происходит в геометрической прогрессии...
Настройка шаблона Metronic с помощью Webpack и Gulp
Настройка шаблона Metronic с помощью Webpack и Gulp
Я пишу эту статью, чтобы поделиться тем, как настроить макет Metronic с помощью Sass, поскольку Metronic предоставляет так много документации, и они...
0
1
86
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Думаю, я исправил проблему. Импорт был проблемой.

Использование динамического импорта вместо статического импорта работает для меня:

onmessage = (msg: MessageEvent<{ number1: number; number2: number }>) => {
  import("wasm-sum").then((wasm) => {
    console.info("Worker is calculating with data...", msg.data);
    const sum = wasm.sum(msg.data.number1, msg.data.number2);
    postMessage(sum);
  });
};

Я обновил свой репозиторий примеров.

В качестве альтернативы мне следовало использовать модуль веб-работника вместо классического...

Другие вопросы по теме