【问题标题】:Does Typescript Async method return a promise?Typescript Async 方法是否返回承诺?
【发布时间】:2018-12-02 18:48:15
【问题描述】:

我刚刚开始了解 Typescript 中的 Async/Await。

我正在像这样转换现有代码:

getImportanceTypes(): Promise<void> {
        return this.importanceTypeService.list()
            .then(items => {
                this.importanceTypes = items;
            });
}

到:

async getImportanceTypes(): Promise<void> {
     this.importanceTypes = await this.importanceTypeService.list()
}

问题是:这真的会返回一个承诺吗?它必须,因为它编译成功,但在我看来,我看到代码执行在 await 上暂停,直到它完成,然后继续。

我问的原因是我对上述(不同类型的表)有大约 10 个类似的调用,我希望它们与 Promise.all 并行执行。

【问题讨论】:

    标签: javascript typescript


    【解决方案1】:

    是的,async 函数返回承诺。 (在 JavaScript 和 TypeScript 中。)async/await 只是用于创建和使用 Promise 的语法糖(但你知道,真的很有用糖)。

    您声明返回类型的方式确实是正确的方式。 There's been some dissention on that point,但是。 :-) 有些人觉得如果函数声明为async,您应该能够只指定它的resolution 类型,而不是明确提及promise。不过,目前您确实使用Promise&lt;x&gt; 而不仅仅是x

    【讨论】:

      猜你喜欢
      • 2021-11-27
      • 1970-01-01
      • 2016-05-20
      相关资源
      最近更新 更多