2017-01-27 11 views
5

У меня есть переменная в глобальной области видимости, которую я должен периодически проверять на предмет изменений. Это, как я хотел бы сделать это в простых JS:Как определить изменение переменной?

let currentValue, oldValue; 

    setInterval(()=>{ 
     if(currentValue != oldValue){ 
      doSomething(); 
     } 
    }, 1000) 

Как это делается с помощью Observables?

ответ

6
Observable.interval(1000) 
    .map(() => currentValue) 
    .distinctUntilChanged(); 

Или вы можете по желанию дать компаратор-функцию:

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