我有一个返回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');
}
hasReadPermission
返回布尔值。
groupingGuaranteesMetaDataCategories
返回数组。
我尝试使用reduce、forkJoin和map,但我不理解如何正确地将async/await重写为Observable,以便在循环中不订阅每个hasReadPermission方法。
Observable.fromPromise(getFilteredGuaranteesByPermissions())
)。或者,你可以参考这个问题:https://dev59.com/_1UL5IYBdhLWcg3w67sR - ChrisG