流星,流星召唤方法什么都没有?

时间:2014-02-06 09:53:37

标签: meteor

这是我在客户端的代码

var us_exist=Meteor.call('isUserExists',function(e,r){});
console.log(us_exist)// displaying "undefined" in console
if(us_exist==0)
{
    console.log("user not exist")
    Meteor.call('updatePosts',this._id,option_data,function(e,r){});
}
else
{
    console.log("iser exists");
}

这是我在服务器端的方法

isUserExist: function()
{
 var u_exist=Polls_Coll.find({question:this.question}, {option1:{$elemMatch:{ids: u_name}}} );
return u_exist.count()
}

它什么都没有返回。

当我在浏览器控制台中运行它时,它运行正常并将结果显示为0或1。

1 个答案:

答案 0 :(得分:0)

该方法的值不是从call函数返回的,而是作为回调的参数传递的。所以你应该将你的代码放在你已经得到的空回调中。

var self = this;

Meteor.call('isUserExists', function(e, us_exists) {

    console.log(us_exist);
    if(!us_exist) {
      console.log("user not exist")
      Meteor.call('updatePosts', self._id, ...);
    } else {
      console.log("user exists");
    }

});


顺便说一句,养成在JavaScript中不使用==运算符的习惯。从长远来看,没有它你会更开心。