多次setTimeout的执行顺序无延迟angular

Execution order of multiple setTimeout without delays in angular

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

例子:

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

问题:

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

它与其他问题有何不同:

此问题 (1) 立即询问案例,(2) 在 angular 上下文中询问(以防 angular 覆盖 setTimeout)。

无题:

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

1) 是

2) https://html.spec.whatwg.org/multipage/timers-and-user-prompts.html 的第 16 步表示:

Wait until any invocations of this algorithm that had the same method context, that started before this one, and whose timeout is equal to or less than this one's, have completed.

3) 不,Angular 不会覆盖它。