javascript - 从 angularfire 数据库列表订阅返回值
问题描述
我试图在我的“费用”列表中总结每笔交易的“金额”价值。
这是我的数据库:
订阅中的日志有效,总计 1700,但我无法从函数中获取“this.expenseListTotal”的值以将其显示在另一个组件中。如何返回“this.expenseListTotal”值以便可以在另一个组件中使用它?
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)
});
推荐阅读
- html - Vue.js 如何在插槽上使用属性
- apache-spark - Yarn 作为 SPARK for linux 集群中的资源管理器 - 在 Kubernetes 内部和 Kubernetes 外部
- html - 一行中的图像预览 - 居中和成比例
- c++ - 我可以/应该使用范围库来模拟集合函数吗?
- java - 将数据从java发布到mysql
- c# - 为什么访问我的类字段返回 null?
- macos - MacOS App 上的 SwiftUI - 奇怪的焦点行为
- python - Ansible:使用 items2dict 将列表转换为字典
- java - java.lang.IllegalAccessError:超类访问检查失败:类 org.apache.poi.openxml4j.util.ZipSecureFile
- javascript - Puppeteer 获取 querySelectorAll 的 innerText