暂停js脚本直到事件发生

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了暂停js脚本直到事件发生相关的知识,希望对你有一定的参考价值。

有没有办法暂停一个js脚本,直到某个事件,如鼠标点击一个按钮?我的意思是脚本应暂停执行并在事件发生时再次恢复。我是javascript的新手,甚至在网上彻底搜索后找不到解决方案!

答案

JS是单线程的,多线程只能由Web Workers完成。我所知道的。

但是,如果你只有一个你想暂停的小脚本,你可以拥有一个全局变量/标志,只需在你的脚本中(我不知道它是一个循环或事件驱动函数)检查该标志。在这种情况下:

var flag = false;

...
if (flag) {
   do your code
} else {
   do nothing or return if in function
}

一旦你想继续,只需设置flag = true;

另一答案

JavaScript是单线程的,在事件发生时没有抢占。这是不可能的。

另一答案

如果你试图暂停的是一个本来会循环的函数,我想出了一个很好的解决方案:https://stackoverflow.com/a/47841425/2884291

以上是关于暂停js脚本直到事件发生的主要内容,如果未能解决你的问题,请参考以下文章

如何暂停powershell脚本,直到调试器附加

如何暂停 R 脚本,直到下载文件?

使用 multprocessing.Pipe 进行阻塞,直到事件发生(超时)

如何区分两个“onpause”事件 - 由单击“暂停”按钮引起,以及由到达媒体片段末尾引起?

暂停程序,直到 powershell 脚本完成

jquery html JS setInterval暂停和重启