【问题标题】:Angular 6 Create an observable to check a variable for changeAngular 6 创建一个 observable 来检查变量的变化
【发布时间】:2018-11-19 19:57:28
【问题描述】:

我正在使用 Angular 6,我想检查变量是否有变化,并在变量有值时停止或取消订阅。

所以我在想一个 Observable:

myValue; // variable to be checked

myObservable = Observable.timer(2000); // every 2 seconds

myObservable.subscribe(); // start

然后继续检查myValue,如果值不为空

myObservable.unsubscribe(); // stop

反正就是这个想法……

我该怎么做?

【问题讨论】:

  • 为什么要这样做?我几乎可以保证有更好的解决方案来解决根本问题。
  • 我完全同意@IngoBürk,这听起来像xy problem。您要解决的问题是什么?
  • 问题是我正在做几个 api 调用,我需要确保我拥有所有数据才能继续
  • 那么您应该为此使用适当的 rxjs 管道和运算符。但是您需要为我们显示更多代码来帮助您。要看的东西是,例如,forkJoin。

标签: angular typescript rxjs angular6 rxjs6


【解决方案1】:

如果你只是想在设置值时做某事,你可以使用 getter 和 setter 来代替 observable:

private _value: any;
public set value(value: any) {
  this._value = value;
  window.alert("Value is set!");
}
public get value() { return this._value; }

根据实际的潜在问题,可能还有其他(更好的)解决方案。

【讨论】:

  • 我是否需要将它放在 setTimeout 上,以便它继续检查变量是否为空?
  • 不,你不需要那个。每当有人尝试为其赋值时,都会调用 setter。
猜你喜欢
  • 2012-12-20
  • 1970-01-01
  • 2021-10-06
  • 2021-12-31
  • 2012-12-09
  • 2019-06-27
  • 1970-01-01
  • 2019-02-09
  • 1970-01-01
相关资源
最近更新 更多