Serialization Meteor/光纤-如何使用Meteor.call回调?

Serialization Meteor/光纤-如何使用Meteor.call回调?,serialization,meteor,fiber,Serialization,Meteor,Fiber,我有这样一段代码,我从客户端调用Meteor方法,并期望在回调中得到结果。results对象是一个格式良好的对象,我可以从服务器控制台对其进行字符串化和打印 当我运行这段代码时,如果结果有效且没有错误,则不会在客户机上调用回调。但是,如果我将fut.return(results)替换为fut.return(JSON.parse(JSON.stringify(results)),则会调用回调,并在客户机中获得“字符串”。知道为什么我可以返回一个字符串,但不能返回对象吗 服务器代码(在Meteor.

我有这样一段代码,我从客户端调用Meteor方法,并期望在回调中得到结果。
results
对象是一个格式良好的对象,我可以从服务器控制台对其进行字符串化和打印

当我运行这段代码时,如果结果有效且没有错误,则不会在客户机上调用回调。但是,如果我将
fut.return(results)
替换为
fut.return(JSON.parse(JSON.stringify(results))
,则会调用回调,并在客户机中获得“字符串”。知道为什么我可以返回一个字符串,但不能返回对象吗

服务器代码(在Meteor.Methods()中)

getUserEvents:function(userId、start、end){
var fut=新未来();
getUserEventsPrivate(用户标识、开始、结束、函数(错误、结果){
如果(错误){
fut.throw(新的Meteor.Error(500,'哎呀,发生了什么事');
}否则{
fut.return(results);//在fut.return(JSON.parse(JSON.stringify(results))时工作;
}
});
返回fut.wait();
}
客户:

Meteor.call('getUserEvents',Meteor.user()。\u id,startStr,endStr,函数(err,results){ 控制台日志(结果); }); 编辑 下面是我试图作为“结果”传递的Json:

[
  {
    "title": "ResponsiveMTL #1",
    "start": "2015-10-13T21:30:00.000Z",
    "end": "2015-10-14T00:30:00.000Z"
  },
  {
    "title": "Meteor Global Distributed Hackathon",
    "start": "2015-10-10T15:00:00.000Z",
    "end": "2015-10-11T15:00:00.000Z"
  },
  {
    "title": "retenues a la source",
    "start": "2015-10-08T19:25:00.275Z",
    "end": "2015-10-08T19:25:00.275Z"
  },
  {
    "title": "Salsa",
    "start": "2015-09-19T22:00:00.000Z",
    "end": "2015-09-19T23:00:00.000Z"
  },
  {
    "title": "Salsa",
    "start": "2015-10-09T22:00:00.000Z",
    "end": "2015-10-09T23:00:00.000Z"
  }
]

以这种方式返回对象是完全可能的

您的对象可能不是EJSON可即时序列化的,尽管如果不查看它的示例,很难判断

例如,如果对象包含循环引用,EJSON将自动失败,并且不会调用回调。这种情况不太可能发生,因为您可以使用JSON对其进行序列化

您可以尝试查找有问题的属性并修改它们,但最好将其注册为EJSON的自定义类型

不管怎样,看到你的真实物体并能说出更多信息将是一件有趣的事情。

您使用的Meteor版本是什么?

尝试将
return fut.wait()
更改为
fut.wait();返回未来值
当然
result
而不是
results
只是一个打字错误,对吗?@apendua当然:)你也可以比较服务器上
results
对象在
解析/字符串化
技巧之前和之后的情况吗?你可以添加一个
results
的示例,或者解释一下它是什么样子吗?服务器控制台中有任何错误或指示吗?我添加了我试图传递给服务器的JSONquestion@NathanZ,请参阅聊天室中的我的评论。希望我们能解决这个问题。有趣的测试用例。