__awaiter 未定义

Ahm*_*med 5 node.js typescript visual-studio-code

我在 VSCode 中使用 typescript v 1.8.9,nodejs 5.9.1 我有我的文件 app.ts 有这些行

import {XController} from "./XController";

var xContrller=new XController();
xContrller.CallAsyncMethod(some args");
Run Code Online (Sandbox Code Playgroud)

XController 是一个具有异步方法 CallAsyncMethod 的类

像这样

public async CallAsyncMethod(url: string) {
        await this.request.post(url);
}
Run Code Online (Sandbox Code Playgroud)

这在 javascript 中转换为 __awaiter(void,...) 但它崩溃说 __awaiter 没有定义???为什么会发生这种情况以及如何解决它的任何线索。

谢谢

bas*_*rat 2

tsconfig.json很可能是错的。以下工作得很好:

tsconfig.json

{
  "compilerOptions": {
      "target": "es6",
      "module": "commonjs",
      "sourceMap": true
  },
  "exclude": [
      "node_modules",
      "typings/browser",
      "typings/browser.d.ts"
  ],
  "compileOnSave": true
}
Run Code Online (Sandbox Code Playgroud)

ping.ts

export async function ping() {
    for (var i = 0; i < 10; i++) {
        await delay(300);
        console.log("ping");
    }
}

function delay(ms: number) {
    return new Promise(resolve => setTimeout(resolve, ms));
}
Run Code Online (Sandbox Code Playgroud)

main.ts

import {ping} from "./ping"

async function main() {
    await ping();
}

main();
Run Code Online (Sandbox Code Playgroud)

  • 首先感谢您解决了问题,但我怀疑存在错误,因为我有相同的 tsconfig 加上“noEmitHelpers”,看起来这导致了问题是否有任何解释(当我删除它时它起作用了)?谢谢 (2认同)