Javascript angularfire数据库列表订阅的返回值
我试图在我的“费用”列表中计算每笔交易的“金额”值 这是我的数据库: subscribe中的日志正常工作,总数为1700,但我无法从函数中获取“this.expenseListTotal”的值以在另一个组件中显示它。如何返回'this.expenseListTotal'值,以便在其他组件中使用Javascript angularfire数据库列表订阅的返回值,javascript,angular,firebase,firebase-realtime-database,Javascript,Angular,Firebase,Firebase Realtime Database,我试图在我的“费用”列表中计算每笔交易的“金额”值 这是我的数据库: subscribe中的日志正常工作,总数为1700,但我无法从函数中获取“this.expenseListTotal”的值以在另一个组件中显示它。如何返回'this.expenseListTotal'值,以便在其他组件中使用 getExpenseListTotals(budgetId: string) { this.afd.list('users/' + this.cUser.uid + '/budgets/' +
getExpenseListTotals(budgetId: string) {
this.afd.list('users/' + this.cUser.uid + '/budgets/' + budgetId + '/expenses').subscribe(_data => {
this.expenseListTotal = _data.reduce((sum, item) =>sum+item.amount,0);
console.log("expennse list total = ",this.expenseListTotal, typeof this.expenseListTotal);
});
}
在职:
getExpenseListTotals(budgetId: string) {
return new Promise(resolve => {
this.total = this.afd.list('users/' + this.cUser.uid + '/budgets/' + budgetId + '/expenses').subscribe((_data) => {
this.expenseListTotal = _data.reduce((sum, item) =>sum+item.amount,0);
resolve(this.expenseListTotal);
});
})
}
在组件中:
this.total = this.budgetService.getExpenseListTotals(this.budgetId);
this.total.then(function(value){
console.log(value)
});
你在控制台里得到了什么?任何错误或无效??它记录了“1700”值,这是两个事务的总和,然后只需添加
返回此值即可。expenseListTotal代码>在console.log()之后;我试过了。那是行不通的。我在下面想出了一个解决办法。非常感谢。