微任务与同步代码执行顺序
microtask vs synchronous code execution order
我想了解 javascript 异步代码在事件循环中的执行顺序。
这是我的非常短的代码片段。
我们如何解释实际的执行顺序:in promise
-> end
-> in then
?为什么 promise 构造函数 运行 在 console.log('end')
之前?
const p = new Promise((res, rej) => {
console.log('in promise')
res()
})
p.then(() => console.log('in then'))
console.log('end')
在 promise 构造函数中 运行 的第一件事是“在 promise”中注销
运行s 的第二件事是 p.then
,在将来设置一些代码到 运行。
运行 的事情是 console.log('end');
您的代码现已完成 运行ning,因此执行 returns 到事件循环。承诺处于已解决状态,因此微任务 运行 和 .then
回调注销 'in then'.
我想了解 javascript 异步代码在事件循环中的执行顺序。
这是我的非常短的代码片段。
我们如何解释实际的执行顺序:in promise
-> end
-> in then
?为什么 promise 构造函数 运行 在 console.log('end')
之前?
const p = new Promise((res, rej) => {
console.log('in promise')
res()
})
p.then(() => console.log('in then'))
console.log('end')
在 promise 构造函数中 运行 的第一件事是“在 promise”中注销
运行s 的第二件事是 p.then
,在将来设置一些代码到 运行。
运行 的事情是 console.log('end');
您的代码现已完成 运行ning,因此执行 returns 到事件循环。承诺处于已解决状态,因此微任务 运行 和 .then
回调注销 'in then'.