【发布时间】:2017-04-27 10:10:36
【问题描述】:
我正在尝试使用 AngularFire2 总结 Firebase-Database 中的一些值,并将它们用于在我的组件逻辑中进行进一步处理。 通过一些建议,我能够查询并减少所需的值 (How to map and reduce child values from FirebaseListObservable),但是当我尝试将它们放入局部变量中进行进一步处理时,在第一次运行时,该值始终未定义。
我尝试使用 first() 来确保 observable 只运行一次并且没有结果。
我怎样才能得到那个值只有一次说,当一个按钮被点击?
这是我的代码:
//sum up scores for questions belonging to category 'id'
...
let scoresObservable = this.dbRef.database.list(`/question-answers/${id}`)
.first()
.map((array) => array.reduce((acc, element) =>
acc + element.$value, 0));
let result;
let sub = scoresObservable.subscribe(sum => {
result = sum;
console.log(`total for ${id}: ` + sum)
});
return result;
第一次调用此块时,该结果始终为“未定义”。
【问题讨论】:
标签: angular rxjs angularfire2