我只是想了解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()
}
问题是:这真的能兑现诺言吗?它必须成功,因为它可以成功编译,但是在我看来,我看到等待执行的代码暂停执行,直到完成,然后继续执行。
我问的原因是我对上述对象(不同类型的表)有大约10个类似的调用,我希望它们与Promise.all并行执行。
答案 0 :(得分:2)
是的,async
函数返回承诺。 (在JavaScript和TypeScript中都使用。)async
/ await
是“仅”用于创建和使用Promise的语法糖(但是,非常有用糖)。
您声明返回类型的方法确实是正确的方法。 There's been some dissention on that point,但是。 :-)有些人认为,如果将该函数声明为async
,则应该只可以指定其 resolution 类型,而不必明确提及promise。不过,目前您确实使用Promise<x>
而不是x
。