【发布时间】:2020-10-25 22:53:52
【问题描述】:
我有以下说明
console.log(1)
setTimeout(() => {
console.log(3)
});
Promise.resolve().then(() => console.log(4))
console.log(7)
输出是:
1
7
4
3
执行顺序如下:
- 控制台被执行
- 承诺已解决
- settimeout 已执行
为什么承诺在 setTimeout 之前解决?两者都由回调处理,对吧?
【问题讨论】:
-
Promise 优先于计时器。因此,如果两者同时在事件队列中,那么 Promise 将首先得到服务。
标签: javascript node.js promise settimeout