已经提供的大多数示例通常在模板中处理meteor.call。我正在一个validatedMethod中制作一个meteor.call,我期待一个结果。然后我想返回或将此结果传递回调用validatedMethod的函数,但我找不到任何有效的函数。这是带有Session变量的代码,但它会导致错误 - “传递调用'getListsServer'结果的异常:TypeError:无法调用未定义的方法'set'”。我也尝试了一个局部变量和一个本地ReactiveVar,但是一旦它们离开meteor.call,这些似乎就会失去范围。我可以使用一些帮助,谢谢。
export const getLists = new ValidatedMethod({
name: 'ListsDB.methods.getLists',
validate: new SimpleSchema({}).validator(),
run({}) {
Meteor.call('getListsServer', function(error, result) {
if (error) {
//do something;
} else {
Session.set('getResults', result); //--> this is the line causing the error
}
});
return Session.get('getResults');
}
});
Meteor.methods({
getListsServer: function () {
.
.
.
var lists = ListsDB.find({"_id": { "$in": usersGroupList }}).map(function (obj) {
return {
"_id": obj._id,
"name": obj.name,
"groupId" :obj.groupId,
"incompleteCount": obj.incompleteCount
};
});
return lists;
}
});