TypeScript - 异步函数前缀

时间:2018-04-06 09:29:45

标签: javascript node.js typescript asynchronous async-await

我在打字稿中收到'意外的令牌'错误,我正在尝试编写这样的异步函数:

async function test() {
  ...
}

我已经看到这可能是由于运行不支持异步函数语法的旧版本节点引起的,但是我的版本正在运行。

为了删除我的节点版本不支持此功能的任何可能性,我刚刚更新到版本9.11.1,检查它是否在命令行中使用,并且异步前缀仍然返回意外的令牌错误。

2 个答案:

答案 0 :(得分:1)

That syntax is fine

async function foo() {
    throw new Error('Just an example');
}

...但是,如果您尝试在function关键字无效的上下文中使用它,它将无法编译,甚至也不是有效的JavaScript。例如,这些无效:

class Foo {
  async function foo() {
    // Syntax error!
  }
}
const blah = {
  async function foo() {
    // Syntax error!
  }
}
以这种方式使用的

async function可以很好地声明函数,但不能定义方法。对于方法,您需要省略function关键字:

class Foo {
  async foo() {
  }
}
const blah = {
  async foo() {
  }
}

...或使用函数表达式:

const blah = {
  foo: async function () {
  }
}

答案 1 :(得分:0)

从节点12.16.3开始仍会遇到此问题

解决方案是删除# print(df1) term timestamp 98 A 600 Strom 2018-09-27 18:26:53 标记并使用以下语法:

function