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