如何在堆栈继续执行之前通过异步回调在meteor的客户端获取返回值?类似的东西:
var result=function(str){
Meteor.call("getSearch",str,function(err,res){
if (err)
throw new Error(err.message);
else
return res
});
};
var final=result(text);
console.log(final);
如何在打印之前获取final
的值?感谢。
答案 0 :(得分:1)
使用异步函数,对结果执行某些操作的最简单方法是在回调函数本身中执行此操作。例如,在这种情况下,如果要将结果记录到控制台,则必须执行此操作:
var result=function(str){
Meteor.call("getSearch",str,function(err,res){
if (err)
throw new Error(err.message);
else
console.log(res); // rather than returning
});
};
result(text);
更一般地说,如果你有一个复杂的函数想要运行返回值,你也可以调用它:
var my_totally_complicated_fn = function(arg) {
... // do a bunch of stuff
}
var result=function(str){
Meteor.call("getSearch",str,function(err,res){
if (err)
throw new Error(err.message);
else
my_totally_complicated_fn(res);
});
};
result(text);