这是我在客户端的代码
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。
答案 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中不使用==
运算符的习惯。从长远来看,没有它你会更开心。