如何在顶层使用异步/等待?

我一直在浏览async/ await在浏览了几篇文章之后,我决定自己测试一下。但是,我似乎无法绕开为什么这行不通的想法:

async function main() {  
    var value = await Promise.resolve('Hey there');
    console.log('inside: ' + value);
    return value;
}

var text = main();  
console.log('outside: ' + text);

控制台输出以下内容(节点v8.6.0):

>外部:[对象承诺]

>内部:嘿

为什么函数内部的日志消息随后执行?我认为创建async/ 的原因await是为了使用异步任务执行同步执行。

Is there a way could I use the value returned inside the function without using a .then() after main()?

猴子村村2020/04/03 10:38:05

顶级等待是即将到来的EcmaScript标准的功能。当前,您可以将其与TypeScript 3.8(此时为RC版本)一起使用。

如何安装TypeScript 3.8

您可以通过使用以下命令从npm安装TypeScript 3.8来开始使用

$ npm install typescript@rc

此时,您需要添加rc标签以安装最新的Typescript 3.8版本。