在工作线程中使用 setTimeOut?

Using setTimeOut in a worker thread?

我正在尝试使用一个非常依赖 window.setTimeOut 实现的库。我想在无权访问 window 范围的工作线程中使用它。

是否可以使用 polyfill 或使用任何其他方法在这种情况下做同样的事情?

你可以很好地使用setTimeout不是setTimeOut)。只需将其用作全局变量:

setTimeout( ... stuff stuff stuff ..., number);

如果你出于某种原因想要使用全局范围对象,self 在浏览器和 Web Worker 中都定义了:

self.setTimeout( ... stuff stuff stuff ..., number);

如果库试图访问 window,只需将其定义为全局范围:

self.window = self;
window.setTimeout( ... stuff stuff stuff ..., number);

如果您还有其他疑问,请查看此 jsfiddle:https://jsfiddle.net/ryovLea1/1/