angular2 +中多个setTimeout 无延迟的执行顺序是什么?
示例:
setTimeout(() => console.log('1'));
setTimeout(() => console.log('2'));
问题:
(1)是否总是保证1
在2
之前打印?
(2)如果是,那么规范的哪一部分如此说明?
(3)这在Angular2 +代码中称为。角度优先于setTimeout
的默认行为吗?
它与其他问题的区别:
这个问题(1)毫无疑问地询问情况,而(2)在角度上下文中询问情况(如果角度覆盖setTimeout
)。
非问题:
我知道console.log
可能(或者可能不是)是异步的或其他;这个问题与此无关。您可以假设console.log
已同步。
答案 0 :(得分:1)
1)是
2)https://html.spec.whatwg.org/multipage/timers-and-user-prompts.html的第16步,其中指出:
等待直到该算法具有相同方法的任何调用 上下文,该上下文在此之前开始,并且其超时时间等于 或少于这个数的人。
3)不,Angular不会覆盖它。