2

angular2+没有延迟的多个setTimeout的执行顺序是什么?

示例

setTimeout(() => console.log('1'));
setTimeout(() => console.log('2'));

问题

(1)1总是保证之前打印2
(2) 如果是这样,规范的哪一部分是这样说的?
(3) 这在 Angular2+ 代码中被调用。是 angular overridesetTimeout的默认行为吗?

它与其他问题有何不同

这个问题(1)毫不拖延地询问案例,(2)在角度上下文中询问它(如果角度覆盖setTimeout)。

非问题

我知道console.log 可能(或可能不是)异步或其他;这个问题与此无关。你可以假设console.log是同步的。

4

1 回答 1

2

1) 是的

2) https://html.spec.whatwg.org/multipage/timers-and-user-prompts.html的第 16 步,其中说:

等到该算法的任何调用都完成了,该调用具有相同的方法上下文,在此之前开始,并且其超时等于或小于此。

3) 不,Angular 不会覆盖它。

于 2018-11-11T01:03:52.190 回答