繁体   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