【发布时间】:2022-11-07 22:06:33
【问题描述】:
我正在使用Array.reduce 迭代一组对象并尝试从那里返回承诺。我在 reduce 方法中进行了一些修改,并且在对象中的 promise 解析后 reviewCards['departments'] 键具有修改后的数据,但 reviewCards['genders'] 为空。我认为所有的承诺都没有正确解决。
如何将最终对象作为 Promise 返回?
public getCompanyReviewCards(
reviewGroups: ICompanyReviewGroups,
reviews: CompanyReview[],
): Promise<[key: string]: ICompanyReviewCard> {
return new Promise((resolve, reject) => {
const reviewCards = Object.keys(reviewGroups).reduce(
async (reviewCards: ICompanyReviewCards, groupKey: string) => {
const group = reviewGroups[groupKey];
reviewCards['genders'] = reviewCards['genders'] || [];
reviewCards['departments'] = reviewCards['departments'] || [];
//Department wise cards
//This block is excuting properyly
if (groupKey === '_departmentGroup') {
const departmentsCards = await this.getCardsByDepartments(group);
reviewCards['departments'] = departmentsCards;
}
//Gender wise cards
//This block is not excuting properyly
if (groupKey === '_genderGroup') {
const gendersCards = await this.getCardsByGender(group);
reviewCards['genders'] = gendersCards;
}
return reviewCards;
},Object.create(null),
);
resolve(reviewCards);
})
}
【问题讨论】:
标签: javascript types promise