__awaiter未定义。

5

我正在使用VSCode、nodejs 5.9.1和typescript v1.8.9。我的文件app.ts有以下几行:

import {XController} from "./XController";

var xContrller=new XController();
xContrller.CallAsyncMethod(some args");

而XController是一个包含异步方法CallAsyncMethod的类

就像这样

public async CallAsyncMethod(url: string) {
        await this.request.post(url);
}

这段代码在JavaScript中对应的是__awaiter(void,...),但运行时出现了“__awaiter未定义”的崩溃错误。你知道为什么会出现这种情况吗?如何解决呢?
谢谢。

你有尝试过使用xController.CallAsyncMethod(some args)进行等待吗? - Brocco
1个回答

2

您的tsconfig.json很可能是错误的。以下内容运行良好:

tsconfig.json

{
  "compilerOptions": {
      "target": "es6",
      "module": "commonjs",
      "sourceMap": true
  },
  "exclude": [
      "node_modules",
      "typings/browser",
      "typings/browser.d.ts"
  ],
  "compileOnSave": true
}

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));
}

main.ts:

import {ping} from "./ping"

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

main();

2
首先感谢您解决了这个问题,但我怀疑存在一个 bug,因为我有相同的 tsconfig 加上 "noEmitHelpers",看起来这导致了问题,有什么解释吗(当我将其删除时它可以工作)?谢谢。 - Ahmed
1
Ahmed,感谢您指出noEmitHelpers设置问题,这帮助我在NativeScript 2.5.0中实现了async-await的工作! - KTCO

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接