У меня есть этот код, где я вызываю метод Meteor из клиента и ожидаю результата в обратном вызове. объект results
— это правильно сформированный объект, который я могу преобразовать в строку и распечатать с консоли сервера.
Когда я запускаю этот код с допустимыми результатами и без ошибок, обратный вызов не вызывается на клиенте. Однако, если я заменю fut.return(results)
на fut.return(JSON.parse(JSON.stringify(results)))
, вызовется обратный вызов, и я получу «строку» в клиенте. Любая идея, почему я могу вернуть строку, но не объект?
Код сервера (в Meteor.Methods()
):
getUserEvents : function(userId,start,end) {
var fut = new Future();
getUserEventsPrivate(userId,start,end,function(err,results){
if(err){
fut.throw(new Meteor.Error( 500, 'Oops, something wrong happened'));
}else{
fut.return(results); // works when fut.return(JSON.parse(JSON.stringify(results)));
}
});
return fut.wait();
}
Клиент:
Meteor.call('getUserEvents',Meteor.user()._id, startStr, endStr,function(err,results){
console.log(results);
});
EDIT вот 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"
}
]
return fut.wait()
наfut.wait(); return fut.value;
- person corvid   schedule 08.10.2015result
вместоresults
— это просто опечатка, верно? - person Tomasz Lenarcik   schedule 08.10.2015results
на сервере до и после трюкаparse/stringify
? - person Tomasz Lenarcik   schedule 09.10.2015results
или пролить свет на то, как он выглядит? Любая ошибка или индикация в консоли сервера? - person MasterAM   schedule 09.10.2015EJSON.clone()
и посмотреть, возникают ли какие-либо исключения. Опять же, без актуального объекта я не могу воспроизвести. - person MasterAM   schedule 09.10.2015