Meteor返回Cursor对象,但不能返回.count()

时间:2015-02-11 06:29:03

标签: meteor

我不明白为什么这个游标返回零计数:

Template.productList.helpers({
    'products': function() {
        return Products.find({}, {transform: function(doc) {
            console.log(ProductsLocations.find({product_id: doc._id}).count());
            return doc;
        }});
    }
});

当我console.log()没有.count()时,我会在Chrome开发工具中找到一个可以遍历的对象。

数据库中存在值,doc._id是有效ID

1 个答案:

答案 0 :(得分:1)

您使用自动订阅吗?

您可能需要确保订阅已准备就绪。请参阅Meteor: How can I tell when the database is ready?Displaying loader while meteor collection loads

您在控制台中看到对象的原因是,当您拨打该电话时,订阅已准备好。但是在您的帮助程序代码中,您可能认为订阅数据已经到达,而实际上它没有。

一个有用的调试工具是Chrome的设备模式(DevTools中搜索图标附近的“电话”图标),可让您模拟慢速网络(例如GPRS,每个请求延迟500毫秒)。

详细了解Meteor's publish/subscribe,并查看https://www.discovermeteor.com/blog/template-level-subscriptions/了解最新模式。