有些奇怪的事情正在发生;当我运行以下代码时,它可以工作:
Deps.autorun(function() {
var room = Rooms.findOne({'room_id':Session.get('room_id')});
// var p = room.room_id;
console.log('autorun');
}
但是,如果我取消注释var p
行,它(整个块)将停止运行。发生了什么事?
答案 0 :(得分:2)
在Meteor.js文档的深处找到了这个:"如果自动运行的初始运行引发异常,则计算会自动停止并且不会重新运行。"
在第一次运行自动运行时,即加载页面时,数据库尚未加载,当您尝试访问room.room_id
时会引发异常,并且自动运行会立即停止再次运行。修正了:
if (room) {
console.log(room.room_id);
...
}