如何使用js自动识别json值的变化



我正在制作一个Web应用程序,可以可视化动态变化的数据的变化。 数据由JSON形成,JSON有两个键和两个值(浮点数和Date()(。 该值不是定期更改,而是几乎每分钟更改一次。我想找到不使用 js setInterval() 的值变化。

我已经尝试过setInterval()但是,很难获得实际的更改。 因为更改 JSON 值的周期不是有规律的。 有时最小 180ms,最大 16000ms

JSON形式就是这样。

{
  key : 10,
  time : /*new Date()*/
}

结果应该是这样的

current value : 20 (updated 2019.4.19 11:01)
the difference is +10 

尝试使用代理对象。

从本质上讲,代理是对象的包装器,但为所有属性提供了预定义的 getter 和 setter。您可以按如下方式创建代理:

const obj = {a: 1, b: 2};
const proxy = new Proxy(obj, {
    set(target, propName, value) {
       console.log(`Method value has changed, previous is ${target[propName]}, next value is ${value}`)
       target[propName] = value;
       return target[propName]; 
    }
})

现在,您可以在 setter 中编写任何副作用,并使用代理对象而不是原始对象。

proxy.a = 7 // will log "Method value has changed, previous is 1, next value is 7"

最新更新