首页 > 解决方案 > 如何有效地检测随时间变化的数组中的变化

问题描述

我打算连续轮询几个端点,在那里我接收到 JSON 形式的对象数组。这些对象必然会随着时间而改变,并且每个对象都有一个唯一的 id。我想有效地观察数组中的任何新对象(一个或多个对象可能已被新对象替换)。我想避免遍历整个数组并将 id 与我保存到某个数据库的前一个数组的 id 进行比较,这是因为新对象可能位于数组的末尾,我会浪费时间运行所有这些比较。

我将如何处理这种情况?例如使用某种队列。在这种情况下使用 ReactiveX (RXJS) 是否理想?

我正在使用 Node.js 进行实施。

标签: javascriptnode.jsrxjsqueuereactive-programming

解决方案


RXJS 是一个很好的解决方案,如果您不想为实现而烦恼,这是理想的选择。

或者,您可以使用观察者模式(提示,使用 EventEmitter 来监听更改),如果您想拥有对代码和实现的所有权,请走这条路。

最后一种选择是使用 npm 模块(像这样)。这似乎遵循观察者设计模式。但是您可以使用它以及您自己的实现的灵感。

但最快的可能是使用 RxJs。


推荐阅读