关于javascript中async和promise的一个问题
如下一段JS代码:
async function timeout() {
return 'hello world'
}
timeout().then(result => {
console.log(result);
})
console.log('虽然在后面,但是我先执行');
下面是运行结果:
但是timeout()本身是在console.log()前面,虽然是异步,但又不用等,结果不是应该先输出“hello world”吗?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(5)
这是宏任务和微任务的区别,
async await
promise
这都属于微任务,微任务要等宏任务队列执行完成后才会执行。在你的代码里面
timeout
是微任务,下面的console.log
是宏任务。微任务和宏任务 你可以看下。 宏任务执行完再执行微任务
谢谢大家谢谢大家
Promise/A+的规范问题,在Promise的实现里,有一点是,他会延时的运行你的then函数,不管你是Promise运行的是同步函数还是异步函数