【发布时间】:2020-04-09 10:44:11
【问题描述】:
来自 MDN
异步函数通过事件循环以与其余代码不同的顺序运行,
但是我不明白这对于一个不显式返回任何内容且根本不使用 await 的简单函数意味着什么。在这种情况下声明一个函数 async 是否有用?它会在稍后执行以允许页面在执行时响应吗?我的测试显示它是同步执行的,根本没有延迟:
async function foo() {
console.log('Start heavy stuff');
for (let i = 0; i < 90000000; ++i) {
Math.random()
}
console.log('Fnish heavy stuff')
}
foo();
console.log('All done, synchronously');
日志以期望的顺序显示,那么在这种情况下是否可以使用使此函数异步?这与使用setTimeout(foo, 0) 调用此函数有什么相似之处吗?
【问题讨论】:
-
除非你的函数中有异步代码,否则没有区别。
标签: javascript async-await event-loop