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

Javascript 我们可以将游标设置为会话变量吗?,javascript,meteor,Javascript,Meteor,我试图将游标设置为会话变量,但它似乎不起作用 有人知道吗 我的代码: Meteor.call('apiresult',function(e,result) { console.log(result); Session.set("object",result)

我试图将游标设置为会话变量,但它似乎不起作用

有人知道吗

我的代码:

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

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

看来没用了

有趣的想法。不过,这不是必需的,因为游标已经是被动的。可以将光标存储在普通变量中

但需要指出的是,您不能使用Meteor.call发送游标,您可以发送javascript对象或指定自己的EJSON,但不能使用游标

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

您可以改为使用发布/订阅功能。

游标实际上可以存储在
会话中。。。有时候。打开并在浏览器控制台中尝试以下操作:

>Session.set('mycursor',Players.find())
未定义
>Session.get('mycursor')
游标{collection:LocalCollection,selector\f:function,sort\f:null,skip:undefined,limit:undefined…}
>Session.get('mycursor').fetch()
[对象,对象,对象,对象,对象,对象]

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


这个故事的寓意似乎是,不要将游标存储在会话变量中。将(
排序
字段
等)存储为对象。

方法结果和会话变量应为EJSON兼容类型。在这里阅读关于EJSON的文章:我的结果是JSON类型,仍然是它不工作的原因游标不支持EJSON。EJSON默认支持的唯一类型是原语(字符串、布尔值、数字)、基本的非类型化对象文本、数组,以及Meteor团队使EJSON兼容的少数类型化对象—
Date
、二进制类型,如
Uint8Array
,以及
Meteor.Collection.ObjectID
。其他类型(如游标、
HTMLElement
s、jQuery对象等)不支持EJSON,因此它们不能用作方法的参数/返回值,也不能存储在会话变量中。相反,它们将作为基本JSON对象发送,没有任何类型信息(原型、构造函数、方法)@sasikanth游标没有EJSON类型,因此无法转换为EJSON。