Collections Meteor-如何知道Meteor.Collection.find方法是否完成?

Collections Meteor-如何知道Meteor.Collection.find方法是否完成?,collections,callback,meteor,Collections,Callback,Meteor,我正在用它开发一个小应用程序。当我使用这行代码时: var currentTypingUsers = Utilites.findOne({title: "typingUsers"}); 。。要从数据库中获取currentTypingUsers值,它总是返回undefined。所以我想这里的问题是数据库还没有准备好。因此,我正在寻找一种在Utilites.findOne({title:“typingUsers”})之后进行回调的方法已被调用 在mongodb中,它们的语法如下:collectio

我正在用它开发一个小应用程序。当我使用这行代码时:

var currentTypingUsers = Utilites.findOne({title: "typingUsers"});
。。要从数据库中获取
currentTypingUsers
值,它总是返回
undefined
。所以我想这里的问题是数据库还没有准备好。因此,我正在寻找一种在
Utilites.findOne({title:“typingUsers”})之后进行回调的方法已被调用

在mongodb中,它们的语法如下:
collection.find(查询、回调)
但它似乎
Meteor.Collection
不支持这种语法。而我仍然在犹豫


所以,你们能帮我解决这个问题吗,如何知道Meteor.Collection.find方法是否完成了?非常感谢先进的

如果Meteor没有将其初始有效载荷数据从发布发送到客户端,则将无法定义

您可以执行以下操作:

utilitiesSub = Meteor.subscribe("utilities");
然后使用

if (utilitiesSub.ready()) { ... }
也许在一个副驾驶室里,自动运行是最好的

因此,为了澄清这一点,假设这是在客户端发生的,那么它不是一个.find()需要一段时间才能完成的情况。事实上,客户端尚未从服务器接收到所有收集数据,因此查找(实际上发生在客户端,您可以关闭服务器,它仍然可以工作)没有任何可处理的内容


如果这在模板加载的初始阶段导致错误,那么我强烈建议使用iron router及其waitOn函数。如果你调用
Utilites.findOne({title:'typingUsers')在浏览器控制台中是否返回结果?我调用了
Utilites.findOne({title:'typingUsers'})
并且它还返回
未定义的
。但是当我在mongoDB数据库中调用
db.utilities.findOne({title:'typingUsers'})
时,它会返回我想要的结果@是的,那么你的第一个问题是它没有被发布/订阅。看一看。