TypeScript:找不到名称async/await

Roo*_*omy 19 async-await typescript

我正在使用typescript@next,我想编译我的代码es5,但每次我使用asyncawait关键字编译器错误与该消息:

Cannot find name 'await'.
Run Code Online (Sandbox Code Playgroud)

我的继承人库:dom,es2015,es2016,es2017.

代码示例:

let asyncFn = () => {
   return new Promise((resolve:Function)=>{resolve(2)})
}
// should log `2`
console.log(await asyncFn())
Run Code Online (Sandbox Code Playgroud)

这样的事情是可能的,即使typescript@2.0.x我已经尝试过,但无论如何我无法编译我的代码.

Nic*_*ico 30

您需要在标记为"异步"功能的函数中使用asyncFn.例如:

async someAsyncCode() {
    let asyncFn = () => {
        return new Promise((resolve: Function) => { resolve(2); });
    }
    // should log `2`
    console.log(await asyncFn());
}
Run Code Online (Sandbox Code Playgroud)

  • 令人震惊的是,即使是愚蠢的TypeScript编译器也无法提供更好的错误消息.像`await不能在异步范围之外使用'之类的东西就没问题了. (15认同)