【发布时间】:2016-05-14 00:13:56
【问题描述】:
我想检查用户是否达到了某个级别并根据该级别进行路由。但这不会等待 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 在客户端上不起作用。您可以使用回调、promise 或响应式计算,但不能使用
wrapAsync提供的伪同步行为。
标签: javascript node.js asynchronous meteor