У меня есть функция публикации метеора, и я выдаю ошибку в этой функции публикации, чтобы ее поймал подписчик. Я использую iron-router, и в функции 'waitOn' подписываюсь на публикацию. По какой-то причине моя функция ошибки не вызывается, когда я выбрасываю ошибку из публикации, и я не знаю, почему. Помощь очень ценится!
Вот мой маршрут с моей подпиской (на 'assignmentsByGroup'
) и моей функцией при ошибке (onErrorfunction
):
this.route('assignmentsList',
{path: '/groups/:groupId',
waitOn: function() {
var onErrorfunction = function(error, result)
{
console.log("onErrorfunction called");
if(error)
{
console.log("Error!");
alert(error.reason);
}
};
return [Meteor.subscribe('assignmentsByGroup', this.params.groupId, onErrorfunction), Meteor.subscribe("groupById", this.params.groupId)];
},
data: function() {
return {
groupId: this.params.groupId
}
}
}
);
И вот моя функция публикации:
Meteor.publish("assignmentsByGroup", function(groupId)
{
try
{
if(_.contains(Groups.findOne({_id: groupId}).members, this.userId))
{
return Assignments.find({group: groupId});
}
else
{
var errorToThrow = new Meteor.Error(401, "Access denied: you cannot view assignments unless you are a member of this group.");
this.error(errorToThrow);
}
}
catch(err)
{
this.error(err);
}
});