我的 JS 代码需要很长时间才能运行,所以它锁定了浏览器。
我可以将它与 分开setTimeout
,那会起作用。但后来我需要重组我的代码。我认为,只要有一个好的库,就应该可以不重构代码(太多)。
那么,任何提供该功能的 js 库?像伪协程之类的东西?
出于兼容性原因,我不想使用 Web Workers。
编辑:有人问我 lib 会做什么。好吧,考虑一下这段代码。
dosomething();
for(var x=0; x<w; x++) {
for(var y=0; y<h; y++) {
dosomething2();
}
}
dosomething3();
我可以使用 setInterval 将其拆分,因此在将控制权返回给浏览器之前,我只执行外部循环的 10 次迭代。但这需要大量重构代码。一个库可以做一些诡计让我更轻松地做到这一点。例如,在 C# 语言中,有可能——实际上有两种方式——生成器和 async 关键字。