[英]How to stop js web worker from within?
TLDR:什么是WorkerGlobalScope.close()
的替代品,它不被棄用
我想在完成工作后從內部關閉/停止/終止 Javascript web 工作人員,因為有一個setInterval()
即使在主要工作完成后仍保持活動狀態。
閱讀這個 SO 問題( JavaScript Web Worker - close() vs terminate() ),似乎self.close()
是我正在尋找的。 但顯然,這已被棄用( 在此處說明),沒有提及替代方案。
到目前為止,我想出的唯一選擇是將消息發送到主線程,然后調用worker.terminate()
調用,但這似乎有點過頭了,因為我需要檢查以這種方式出現的每條消息終止請求。
我錯過了什么嗎? 我應該使用什么?
此通知具有誤導性.close()
根本不被棄用。
這里發生的情況是,在規范中, WorkerGlobalScope
是一個由不同工作類型(DedicatedWorkers、ServiceWorkers、SharedWorkers 以及其他規范中的其他 Worklet)使用的接口。
所有這些類型都沒有.close
方法(例如ServiceWorkers沒有),因此該方法已移至每個特定類型的工作人員全局范圍的定義中。
例如,您可以看到DedicatedWorkerGlobalScope仍然存在,並且不會很快被棄用。
它實際上也存在於 MDN 中。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.