如何检测变量的变化?

man*_*dos 6 rxjs rxjs5

我有一个全局范围的变量,我需要定期检查更改.这就是我在简单JS中的方法:

    let currentValue, oldValue;

    setInterval(()=>{
       if(currentValue != oldValue){
          doSomething();
       }
    }, 1000)
Run Code Online (Sandbox Code Playgroud)

它是如何使用的Observables?

ols*_*lsn 6

Observable.interval(1000)
    .map(() => currentValue)
    .distinctUntilChanged();
Run Code Online (Sandbox Code Playgroud)

或者您可以选择提供比较器功能:

Observable.interval(1000)
    .map(() => currentValue)
    .distinctUntilChanged((oldValue, newValue) => <return true if equal>);
Run Code Online (Sandbox Code Playgroud)