【发布时间】:2020-02-05 01:27:00
【问题描述】:
我有一个方法可以返回 Promise 并在循环中使用 async/await 概念。
async getFilteredGuaranteesByPermissions(): Promise<GuaranteesMetaData[]> {
const result = [];
for (const guarantees of this.guaranteesMetaData) {
if (await this.permissionService.hasReadPermission(guarantees.key)) {
result.push(guarantees);
}
}
return this.groupingGuaranteesMetaDataCategories(result);
}
groupingGuaranteesMetaDataCategories(guarantees: GuaranteesMetaData[]): GuaranteesMetaData[] {
return _.groupBy(guarantees, 'category');
}
有读取权限
返回布尔值
groupingGuaranteesMetaDataCategories
返回数组。
我尝试使用 reduce、forkJoin、map,但我无法理解如何将 async/await 重写为 Observable 正确,即不订阅循环中的每个 hasReadPermission 方法?
【问题讨论】:
-
将 async/await 与 Observables 一起使用并没有错。你甚至可以从 promise (
Observable.fromPromise(getFilteredGuaranteesByPermissions())) 创建一个 observable。或者,你可以看看这个问题:stackoverflow.com/questions/49596641/…
标签: javascript angular rxjs