我们可以将游标设置为会话变量吗?

时间:2014-02-17 06:45:21

标签: javascript meteor

我试图将游标设置为会话变量,看起来它不起作用。

任何人都有这个想法?

我的代码:

 Meteor.call('apiresult',function(e,result)
    {                                               
    console.log(result);
    Session.set("object",result)                                                                                                        
    }); 

//getting variable
 var abc=Session.get("object");
return abc.skimlinksProductAPI.numFound;        

看起来不起作用

2 个答案:

答案 0 :(得分:5)

游标可以实际存储在Session ...有时候。打开leaderboard app并在浏览器控制台中尝试:

  

> Session.set('mycursor',Players.find());
  未定义
  > Session.get( 'mycursor')
  LocalCollection.Cursor {collection:LocalCollection,selector_f:function,sort_f:null,skip:undefined,limit:undefined ...}
  > Session.get( 'mycursor')。取()
  [对象,对象,对象,对象,对象]

现在下载code of the leaderboard example app,使用最新的Meteor,并在浏览器控制台中执行相同的操作。你可能会得到:

enter image description here

故事的寓意似乎是,不要将游标存储在会话变量中。将the Minimongo selector and optionssortfields等)存储为对象。

答案 1 :(得分:3)

有趣的想法。但是它不是必需的,因为游标已经被反应了。您可以将光标存储在普通变量中。

有一点需要注意的是,你不能使用Meteor.call向下发送游标,你可以发送javascript对象或指定你自己的EJSON但你不能用游标来做这个。

因此,如果在本地执行.find(),则可以将游标存储在全局变量中,但是您无法在服务器上执行游戏,然后使用Meteor.call传输游标

您可以使用发布/订阅功能代替。