如何从流星验证方法返回meteor.call结果?

时间:2016-06-06 17:37:12

标签: session meteor methods return-value

已经提供的大多数示例通常在模板中处理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;
        }
    });

0 个答案:

没有答案