使用流星调用时,可以多次访问流星中的某个函数
Multiple access of a function in meteor while using meteor call
我正在尝试访问集合名称帖子,以检查当前用户是否已经喜欢。如果喜欢,则显示不同颜色的喜欢按钮。问题是函数被调用了两次。
isLiked: function() {
let self = this;
console.log();
Meteor.call('posts.isLiked', self._id, (error, result) => {
console.log(result);
return result;
});
}
上面的函数调用posts.is如下所示-
'posts.isLiked': (_id) => {
check(_id, String);
if (!Meteor.user()) {
throw new Meteor.Error(401, 'You need to be signed in to continue');
}
if (!_id) {
throw new Meteor.Error(422, '_id should not be blank');
}
return (Posts.find( { _id: _id , already_voted: { "$in" : [Meteor.userId()]} }).count() == 1);
}
控制台显示输出2次。如有任何帮助,我们将不胜感激。
我认为,因为您使用的是ES6函数,您可能会遇到问题,调试应用程序是唯一的解决方案,但您可以使用基本函数调用而不是ES6规范吗?
以下是我想问你的问题:
isLiked: function() {
let self = this;
console.log();
Meteor.call('posts.isLiked', self._id, function(error, result) {
console.log(result);
return result;
});
}
'posts.isLiked': function(_id){
check(_id, String);
if (!Meteor.user()) {
throw new Meteor.Error(401, 'You need to be signed in to continue');
}
if (!_id) {
throw new Meteor.Error(422, '_id should not be blank');
}
return (Posts.find( { _id: _id , already_voted: { "$in" : [Meteor.userId()]} }).count() == 1);
}
还要在isLiked的第一行放一个控制台日志,这样你就会知道Meteor.call不会被调用两次,但可能是isLiked被调用了两次。
相关文章:
- 使用流星调用时,可以多次访问流星中的某个函数
- 如何访问包内的流星包名称
- 访问流星模板中的父数据上下文
- 流星 - 从儿童助手访问父模板变量
- 流星 - 无法访问收藏
- 如何在流星.js中访问集合的元素
- 无法访问棱角流星中的集合
- 访问数据时未定义流星用户
- 无法访问上传的图像 - 流星网格FS
- 访问流星列表中的特定元素
- 流星如何在表单中访问不同的文档
- 如何访问流星中的npm包事件发射器客户端
- 如果用户想访问特定的页面,需要在angular流星中进行登录验证,如何重定向到404页面
- 流星与流量路由器:我有权访问流星.用户从流量路由器触发
- 访问由流星自动生成的数组和对象
- 使用流星访问阴影DOM聚合物元素
- 通过模板访问流星收集
- 流星的访问.userId从外部的方法/发布
- 流星-访问和显示图像
- 从Javascript文件(流星)访问HTML DOM