Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/398.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何从内部阻止js web worker?_Javascript_Web Worker - Fatal编程技术网

Javascript 如何从内部阻止js web worker?

Javascript 如何从内部阻止js web worker?,javascript,web-worker,Javascript,Web Worker,TLDR:WorkerGlobalScope.close()的替代方法是什么 我想在Javascript web worker完成工作后从内部关闭/停止/终止它,因为有一个setInterval()即使在主要工作完成后仍保持活动状态 读到这个问题(),我似乎在寻找self.close()。但显然,这是不赞成(声明)没有提到任何替代品 到目前为止,我提出的唯一替代方法是向主线程发送一条消息,然后主线程调用worker.terminate()调用,但这似乎有些过分,因为我需要检查通过这种方式发出的每

TLDR:WorkerGlobalScope.close()的替代方法是什么

我想在Javascript web worker完成工作后从内部关闭/停止/终止它,因为有一个
setInterval()
即使在主要工作完成后仍保持活动状态

读到这个问题(),我似乎在寻找
self.close()
。但显然,这是不赞成(声明)没有提到任何替代品

到目前为止,我提出的唯一替代方法是向主线程发送一条消息,然后主线程调用
worker.terminate()
调用,但这似乎有些过分,因为我需要检查通过这种方式发出的每条消息,以获得终止请求


我错过什么了吗?我应该使用什么?

此通知具有误导性
。close()
完全没有被弃用

这里发生的是,规范中有一个接口,由不同的工作类型(专用工作人员、服务工作人员、共享工作人员,以及其他规范中的其他工作集)使用。
所有这些类型都没有
.close
方法(例如不),因此此方法已移动到每个特定类型的工作全局范围的定义中

例如,您可以看到,对于,它仍然存在,并且不会很快被弃用


实际上是这样。

你可以用
setTimeout()
代替
setInterval()
,当停止的时候,不要启动下一个计时器调用。有趣的解决方法,thx的想法,但不是我想的:DCA可以用
clearInterval
杀死
setInterval
?谢谢,它解决了问题的一部分,就像Pointy的答案一样。但是,我仍然希望有一种解决方案,可以在任何时候可靠地停止所有工作程序,也可以在脚本完成一半时停止。另外,我不想担心需要停止的所有函数和间隔。我打开了