2

最新的流星的 observeChanges 游标方法似乎被调用了两次,我不确定为什么。

在仅限客户端的文件中,有以下代码:

Meteor.startup(function () {
//TODO BROKEN
    CodeFiles.find({_id: Session.get('currentFile')}).observeChanges({
        changed: function(id, fields) {
            console.log("Codefile changed");
            console.log(fields);
        }
    });
});

在我的浏览器中导致以下结果,

Codefile changed client.js:165
Object {edits: Object}
 client.js:166
XHR finished loading: "http://localhost:3000/sockjs/991/bm7f2oa8/xhr_send". sockjs-0.3.4.js:821
XHR finished loading: "http://localhost:3000/sockjs/991/bm7f2oa8/xhr". sockjs-0.3.4.js:821
Codefile changed client.js:165
Object {}

如您所见,observeChanges 方法被调用了两次,一次使用正确的编辑对象,包括正确的数据。第二次使用空白对象。这不是一个大问题,因为我可以检查一个空对象并进行补偿,但我宁愿解决根本问题。

完整代码开源并可在此处查看: Github 提交链接

如果您运行代码以在 javascript 控制台中查看问题,请记下具体的提交号。在以后的提交中,我只是在进行未定义的检查,但我希望看到根本问题得到解决,因为发送无用的数据是一个问题。

4

0 回答 0