Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/meteor/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Session 如何从meteor验证的方法返回meteor.call结果?_Session_Meteor_Methods_Return Value - Fatal编程技术网

Session 如何从meteor验证的方法返回meteor.call结果?

Session 如何从meteor验证的方法返回meteor.call结果?,session,meteor,methods,return-value,Session,Meteor,Methods,Return Value,已经提供的大多数示例通常处理模板内的meteor.call。我正在做一个meteor.call,从一个内部验证方法,我期待一个结果。然后我想返回或传递这个结果给调用validatedMethod的函数,但是我找不到任何有效的方法。下面是带有会话变量的代码,但它会导致错误-“传递调用“getListsServer”的结果时出现异常”:TypeError:无法调用未定义的方法“set”。我还尝试了一个局部变量和一个局部ReactiveVar,但一旦它们离开meteor.call,它们似乎就失去了作用

已经提供的大多数示例通常处理模板内的meteor.call。我正在做一个meteor.call,从一个内部验证方法,我期待一个结果。然后我想返回或传递这个结果给调用validatedMethod的函数,但是我找不到任何有效的方法。下面是带有会话变量的代码,但它会导致错误-“传递调用“getListsServer”的结果时出现异常”:TypeError:无法调用未定义的方法“set”。我还尝试了一个局部变量和一个局部ReactiveVar,但一旦它们离开meteor.call,它们似乎就失去了作用域。我需要一些帮助,谢谢

export const getLists=new ValidatedMethod({
名称:“ListsDB.methods.GetList”,
验证:新的SimpleSchema({}).validator(),
运行({}){
Meteor.call('getListsServer',函数(错误,结果){
如果(错误){
//做点什么;
}否则{
Session.set('getResults',result);//-->这是导致错误的行
}
});
return Session.get('getResults');
}
});
流星法({
getListsServer:函数(){
.
.
.
var lists=ListsDB.find({“\u id”:{“$in”:usersGroupList}).map(函数(obj){
返回{
“_id”:对象_id,
“名称”:对象名称,
“groupId”:obj.groupId,
“不完全计数”:对象不完全计数
};
});
退货清单;
}
});

尝试删除Session.set('getResults',result)中的空间。如果它不起作用,您是否在方法中返回了一些内容?你能把你的getListsServer方法代码也包括进来吗?var shoppingLists=ShoppingListsDB.find({“\u id”:{“$in”:usersGroupList}).map(函数(obj){return{“\u id”:obj.\u id,“name”:obj.name,“groupId”:obj.groupId,“incomplecount”:obj.incomplecount}; }); //log('getGroupShoppingListsServer 6',ShoppingList)//log('GroupsDB.methods.GetGroupShoppingList 7',usersGroupList);退回购物清单;Ramil,这是返回对象。如果我将其移动到validatedMethod GetList函数中,它就可以正常工作。我发现Meteor.call的结果只会进入已验证方法的服务器端,而不会进入客户端模拟。我认为这与异步行为有关。这可能需要使用光纤,但以前从未使用过,也不确定从何处开始。有人能在验证过的方法中帮助将结果传递给客户端吗?没有,您可以将错误和结果从Meteor.methods()传递给Meteor.call()。你想让我写一个例子吗?我不使用validatedMethod tho,我不确定它是否适用于您。