【发布时间】:2016-01-04 23:51:42
【问题描述】:
不确定正确的术语,但我正在使用 NodeJS 和 Mongoose 中的一些 API。我有一堆 Mongoose 记录,其中加载了来自 Google Maps API 的数据,我想为每条记录创建一个侦听器,以便在填充特定字段时进行观察。
我不能通过简单的回调来做到这一点,因为 API 受到速率限制并且需要间隔排队系统。
相反,我想要类似的东西:
var obj1 = {name: 'rec1', mapData: {}, fieldData: {} };
obj1.on('mapDataComplete', function(){...});
obj1.mapData 从其初始状态更改时发出 mapDataComplete。
【问题讨论】:
-
听起来你真正需要的是来自 MongoDB 的河流。有几种可用的,因为当 Mongo 中的记录更新时,河流通常用于自动更新 ElasticSearch 之类的东西。
-
一个想法是使用 Object.defineProperty 并覆盖 set 方法来调用你的方法。所以当你做 obj1.mapData = 'whatever' 它应该通过你的 set 方法。我认为一些像 vue.js 这样的前端框架使用它来进行数据绑定。
标签: javascript node.js event-handling dom-events