【发布时间】:2018-04-03 12:25:36
【问题描述】:
我在订阅集合的 valueChanges 时遇到了一些有趣的行为。
在创建文档后立即调用集合的订阅,但是我只收到一个大小为 1 的数组,而不是许多文档的数组 - 单个新创建的文档。
在阅读完这个(Firestore Docs | Get Realtime Updates)之后,我还是有点困惑。
应用中的本地写入将立即调用快照侦听器。这是因为一个称为“延迟补偿”的重要功能。当您执行写入时,您的侦听器将在数据发送到后端之前收到新数据的通知。
这是否解释了我所看到的行为?
这是一个 stackblitz 演示问题。只需取消注释掉 ngOnInit() 中的注释行并重新加载以查看我认为的预期行为。
我可以通过让一个空订阅在别处监听这个集合,或者直接在之前复制 take(1) 订阅代码来解决这个问题
【问题讨论】:
标签: javascript angular rxjs rxjs5