设置间隔和观察者是否会减慢我的 angular 应用程序?

Does set interval and observers slow down my angular app?

我的代码看起来像这样,我只是想知道这是否会使我的应用程序膨胀?或者以某种方式让它变慢?

  // so that anytime the user changes their wallet it reflects on the view
  connectedAddress$ = new Observable<string>((observer: Observer<string>) => {
    setInterval(() => observer.next(this.signerAddress), 1000);
  });

此代码每秒最多窃取 CPU 10 纳秒,这并不重要,即使您有数百个此类订阅。这一次的坏处是你根本没有停止这个间隔。因此,例如,如果此 connectedAdress$ 在某个组件模板中获得订阅,并且您渲染 1000 个组件,然后多次重新渲染它们,这些垃圾间隔将累积并占用您内存的显着部分,甚至可能 CPU .正确的方法是使用内置的 rxjs 运算符和工厂来满足您的需求。对于这个特定的用例,interval(1000) 更好。

connectedAddress$ = interval(1000).pipe(map(() => this.signerAddress));

但更好的办法是为您的签名者地址创建一个主题,并且每当它发生变化时更新主题值

this.signerAddress$ = new ReplaySubject(1);

updateAddress(address) {this.signerAddress.next(address)}