snapshotChanges 如何感知变化?

How is snapshotChanges aware of changes?

我已经安装了@angular/fire(最新版本5)依赖。

  getCustomersList() {
    this.customerService.getCustomersList().snapshotChanges().pipe(
      map(changes =>
        changes.map(c =>
          ({ key: c.payload.doc.id, ...c.payload.doc.data() })
        )
      )
    ).subscribe(customers => {
      this.customers = customers;
    });

如果我使用 F12 Firefox 的网络选项卡打开,我看不到任何网络 activity,即使我 "magically" 收到更改(来自另一个浏览器实例,例如)。但我假设应用程序客户端(位于浏览器中)定期轮询远程数据库:它是否以某种方式得到确认? 它可以订阅在其他地方完成的更改的机制是什么?为什么我无法在浏览器开发者工具中将其可视化?由于 @angular/firegithub 上是开源的,有人可以指出代码的相关部分吗?

实际上我错了,现在我可以看到(下面的屏幕截图)来自 Zone.js 调度程序的请求大约每分钟一个。

的确,第一段this article简单回答了我的问题

Angular introduced Zone.js to handle change detection. This allows Angular to decide when the UI has to be refreshed. Usually, you don’t have to care about any of this, because Zone.js just works.