关于js事件执行机制event loop的一道面试题
`
async function async1 () {
console.log('async1')
await async2()
console.log('async1-2')
}
async function async2 () {
console.log('async2');
return Promise.resolve().then(() => {
console.log('async2-2')
});
}
console.log(1)
async1()
setTimeout(() => {
console.log('setTimeout')
},0)
new Promise((resolve, reject) => {
console.log('promise1')
resolve()
console.log('promise4')
}).then(data => {
console.log('promise3')
})
console.log(2)`
执行结果是:
1
async1
async2
promise1
promise4
2
async2-2
promise3
async1-2
setTimeout
关于 倾斜加粗 的部分我不是很理解,有谁可以解答下吗?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
async2。 先忽略
await、async
,我们来看看这里应该怎么输出呢?还是同样输出对吧。await、async
?我认为 async 声明这个方法是一个异步的,可以在里面 return 一个 promise
await 呢,则是等待异步执行完成之后再执行后面的。可以理解为后面的代码都放入.then里面