【发布时间】:2019-07-23 00:41:41
【问题描述】:
我有这个简单的代码:
(async ()=>{
const five = await printHello()
console.log(`five: ${five}`);
})()
async function printHello(){
console.log('Hello World')
return 5;
}
console.log("App started");
我的期望是它应该打印出来:
App started
Hello World
five: 5
因为被执行的匿名函数被标记为异步。
但它会打印,即使经过多次试验:
Hello World
App started
five: 5
谁能解释一下为什么会这样?
【问题讨论】:
-
这可能是因为代码是从上到下执行的,所以在“App started”之前会显示“Hello World”消息。
-
@Edric 是的,但是当您将其标记为异步时,调用会转到下一行,并且异步函数会在事件循环的下一个滴答声中执行。
标签: javascript node.js async-await es6-promise