观察对象变化的最低级别方法

时间:2018-01-18 03:12:00

标签: javascript node.js

一个实时应用程序,必须在更改后立即向所有客户端广播一个大对象。

观察Node.JS对象中任何更改的最低级别方法是什么?

例如,给定对象:

var obj = {
  num: 3,
  deep: {
      num: 5
  }
}

在调用任何一个函数后会触发一个函数:

  • obj.num = 10;
  • obj.num.deep.num = 10;
  • obj.num.deep = undefined;
  • 依旧......

有可能吗?怎么样?

无法使用:

  • WatchJS:因为它使用了轮询。
  • Getters / setters:因为对象结构未知。

1 个答案:

答案 0 :(得分:1)

根据您的要求,这应该通过公开对象的代理而不是对象本身来实现。 然后,您可以拦截代理中的setter,并从那里触发事件。

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Proxy https://caniuse.com/#feat=proxy