【发布时间】:2018-06-17 14:11:12
【问题描述】:
你能告诉我如何在下面的deleteBudgets() 方法上返回promise 吗?因为我需要在updateBudgets()方法中使用await。
删除预算
deleteBudgets(data: Budget[], projectId: string): Promise<void> {
forEach(data, (d: Budget) => {
this.fireStore.doc(`projects/${projectId}/budgets/${d.id}`).delete();//here it returns Promise<void>
});
}
更新预算
updateBudgets(data: Budget[], projectId: string): Budget[] {
await this.deleteBudgets();//here
let budgets: Budget[] = [];
forEach(data, (d) => {
const budgetId: string = this.fireStore.createId();
d.id = budgetId;
budgets.push(d);
this.fireStore.doc<Budget>(`projects/${projectId}/budgets/${budgetId}`).set({
id: budgetId,
amount: d.amount,
contingency: d.contingency,
budgetGroup: d.budgetGroup,
creationTime: moment().format()
})
})
return budgets;
}
【问题讨论】:
-
使用
data.map()和Promis.all得到deleteBudgets的结果 -
为什么需要使用await?您可以使用回调并在回调函数中实现剩余的代码块。
-
如果你能把它放在一个解决方案中,那就太好了。然后我可以测试它。现在我还不清楚。 @ponury-kostek
标签: angular typescript promise ionic3