Назад к вопросам
Middle
469
questionbank

Как остановить и уничтожить объект web worker?

Sobes Copilot

Получайте ответы в реальном времени

Ответ от нейросети

sobes.tech AI

Остановить можно, вызвав метод terminate() у экземпляра worker'а. Это немедленно завершит его выполнение, без ожидания завершения текущих задач.

Уничтожение объекта web worker'а происходит автоматически сборщиком мусора JavaScript после того, как на него не останется ссылок и его ресурсы будут освобождены.

Пример остановки:

// Создание worker'а
const myWorker = new Worker('worker.js');

// Добавление обработчика сообщений (опционально)
myWorker.onmessage = function(event) {
  console.log('Получено от worker\'а:', event.data);
};

// Отправка сообщения (опционально)
myWorker.postMessage('Hello Worker!');

// Остановка worker'а
myWorker.terminate();

Важно помнить, что после вызова terminate(), worker перестает реагировать на любые сообщения и не может быть перезапущен. Для новой задачи необходимо создать новый экземпляр Worker.