这里,我调用方法来获取异步方法中的Quickblox结果。虽然我在控制台打印值我可以得到它,但应用程序继续加载不返回结果。
服务器端:
Meteor.methods({
allquickbloxusers_Methods: function(){
var params = {login: ["99999"]};
var asyncCall = QB1.users.get(params, Meteor.bindEnvironment(function(err, QBuser) {
if(QBuser) {
return QBuser;
} else {
return err;
}
}));
var syncCall = Meteor.wrapAsync(asyncCall);
var res = syncCall();
// now you can return the result to client.
return res;
}
});
答案 0 :(得分:0)
使用Meteor.wrapAsync
想要传递实际函数,而不是被调用函数的结果。像这样:
Meteor.methods({
allquickbloxusers_Methods: function(){
var params = {login: ["99999"]};
var syncCall = Meteor.wrapAsync(QB1.users.get)
var res = syncCall(params);
// now you can return the result to client.
return res;
}
});
基本上wrapAsync
会为您提供一个新功能,您可以使用原始功能的参数调用该功能。
了解这一点,您可以使功能更简洁:
Meteor.methods({
allquickbloxusers_Methods: function(){
var params = {login: ["99999"]};
return Meteor.wrapAsync(QB1.users.get)(params)
}
});