多个setTimeout的执行顺序,不会延迟角度

时间:2018-11-11 00:57:57

标签: javascript angular settimeout ngzone

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

示例

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

问题

(1)是否总是保证12之前打印?
(2)如果是,那么规范的哪一部分如此说明?
(3)这在Angular2 +代码中称为。角度优先于setTimeout的默认行为吗?

它与其他问题的区别

这个问题(1)毫无疑问地询问情况,而(2)在角度上下文中询问情况(如果角度覆盖setTimeout)。

非问题

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

1 个答案:

答案 0 :(得分:1)

1)是

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

  

等待直到该算法具有相同方法的任何调用   上下文,该上下文在此之前开始,并且其超时时间等于   或少于这个数的人。

3)不,Angular不会覆盖它。