如果我继续使用
添加一段延迟的javascript处理程序window.setTimeout
这将在队列中添加所有超时处理程序。 当他们开始执行时,保证所有超时处理程序将按照添加的顺序以相同的顺序执行。假设所有处理程序的延迟都相同。
window.setTimeout(handler1, 100);
window.setTimeout(handler2, 100);
window.setTimeout(handler3, 100);
window.setTimeout(handler4, 100);
在上面的例子中,执行顺序保证是handler1然后handler2然后handler3然后handler4?或者他们可以按任何顺序执行吗?
我尝试过一些小例子,似乎所有处理程序都按正确的顺序执行,但是想确定这是否是所有浏览器的行为方式。
答案 0 :(得分:1)
窗口对象的方法,包括setTimeout,由this spec覆盖。有一个关于事件如何排队的部分。如果项目具有相同的超时值,则不会指定项目排队的顺序。因此,我认为你不能依赖这方面的任何特定行为;浏览器可以随意实现它们。