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

JavaScript Node.js

小小

2020-04-03

我一直在浏览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()?

第3897篇《如何在顶层使用异步/等待?》来自Winter(https://github.com/aiyld/aiyld.github.io)的站点

1个回答
猴子村村 2020.04.03

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

如何安装TypeScript 3.8

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

$ npm install typescript@rc

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

问题类别

JavaScript Ckeditor Python Webpack TypeScript Vue.js React.js ExpressJS KoaJS CSS Node.js HTML Django 单元测试 PHP Asp.net jQuery Bootstrap IOS Android