Я хочу проверить, достиг ли пользователь определенного уровня и выполнить маршрутизацию в соответствии с этим. Но это не дожидается возврата wrapasync. Как достичь этого?MeteorJS wrapasync не работает внутри железного маршрутизатора
Router.js
var getLevelAsync = function (userID, callback) {
Meteor.call('getLevel', Meteor.userId(), function (err, data) {
callback(null, data['level']);
})
}
var getLevel = Meteor.wrapAsync(getLevelAsync);
Router.route('/verifyData', function(){
var level = getLevel(Meteor.userId());
if(level < 3) this.render('somepage');
else this.render('another page');
})
сервер/methods.js
getLevel: function (userID) {
return Meteor.users.findOne({_id: userID});
}
WrapAsync не работает на стороне клиента. Вы можете использовать обратный вызов, обещание или реактивное вычисление, но не псевдосинхронное поведение, предоставляемое 'wrapAsync'. – MasterAM
Возможный дубликат [Как использовать Meteor.wrapAsync на клиенте?] (Http://stackoverflow.com/questions/29478707/how-to-use-meteor-wrapasync-on-the-client) – MasterAM