访问collection.property时,Meteor Autorun()未运行

时间:2013-07-18 03:16:05

标签: meteor

有些奇怪的事情正在发生;当我运行以下代码时,它可以工作:

Deps.autorun(function() {
  var room = Rooms.findOne({'room_id':Session.get('room_id')});
  // var p = room.room_id;
  console.log('autorun');
}

但是,如果我取消注释var p行,它(整个块)将停止运行。发生了什么事?

1 个答案:

答案 0 :(得分:2)

在Meteor.js文档的深处找到了这个:"如果自动运行的初始运行引发异常,则计算会自动停止并且不会重新运行。"

在第一次运行自动运行时,即加载页面时,数据库尚未加载,当您尝试访问room.room_id时会引发异常,并且自动运行会立即停止再次运行。修正了:

if (room) {
  console.log(room.room_id);
  ...
}