簡體   English   中英

如何從內部停止 js web 工作人員?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM