【发布时间】:2019-06-14 22:43:41
【问题描述】:
我正在使用 rxjs 和 firestore 创建一个 Angular 应用程序。
我正在处理的功能需要更新项目的百分比。
因为它是资源密集型的,我只更新可见项目的百分比。
百分比是使用开始日期、结束日期和当前日期计算的。因此,如果我们在项目进行到一半时,百分比将显示为 50%。
现在我订阅了该项目,并使用公式计算百分比并将其推送到数据库。问题是,我需要每 1 秒(或任意次数,我只需要它准确)重新计算这个百分比,以便我可以相应地更新百分比。
这就是它的样子:
var date_percentage = this.get("projects","uz9o3cGSHq7q1p7utujq").map(
res=>{
if (this.date_percentage_calculator(res.data().start_date,res.data().end_date) >= 100) return 100
else if (this.date_percentage_calculator(res.data().start_date,res.data().end_date) <= 0) return 0
else return this.date_percentage_calculator(res.data().start_date,res.data().end_date)
}
).subscribe(calculated_percentage=>{
this.update_proprety("projects","uz9o3cGSHq7q1p7utujq","percentage",calculated_percentage)
})
现在项目可能不会被修改,因此更新程序可能只会被调用一次。
如何让可观察对象重新发送最新值,以便在可观察对象未收到值时更新百分比事件?
【问题讨论】:
标签: angular rxjs google-cloud-firestore