У меня есть приложение, и оно использует веб-воркеров для выполнения некоторых вычислений с другими работниками. Ошибка, которую он выдает, по сути жалуется на то, что ожидаемых данных нет, поскольку вычисления не были произведены.
Вычисления выполняются локально с работающими веб-воркерами, но в prod я почти не понимаю, почему это не работает.
Следует отметить, что, поскольку мне нужен импортированный контекст определенных функций (определенных вне рабочего контекста), я последовал совету, предложенному здесь: ( Создание веб-воркера внутри React ), и я сначала вставляю его в строку и сначала превращаю в большой двоичный объект.
`
export const buildBlobUrlFromCode = (code) => {
// returns a DOMString that links context to the code within the blob
code = code.substring(code.indexOf("{") + 1, code.lastIndexOf("}"));
const blob = new Blob([code], { type: "application/javascript" });
return URL.createObjectURL(blob);
}
export class WebWorker {
constructor(worker) {
let code = worker.toString();
// const blobUrl = strDecoratedBuildBlobUrlFromCode(code);
const blobUrl = buildBlobUrlFromCode(code);
return new Worker(blobUrl);
}
}
и как я использую приведенный выше код: const workerInstance = new WebWorker(MyWorker);
где MyWorker
— это fn, экспортированный с определенным onmessage
и всеми операциями, определенными внутри.
Я добавил несколько журналов и, по сути, код прерывается, когда я начинаю вычисление с помощью: workerInstance.postMessage([data]);
Также следует отметить, что я использую приложение react-create-app для создания своего приложения, и я еще не извлек его, поэтому конфигурации веб-пакета не тронуты.
Кроме того, исходные файлы для этих рабочих процессов полностью пусты при развертывании, но заполняются локально (как я вижу фактический код в файлах worker.js)