【问题标题】:Meteor client side asynchronous callbackMeteor 客户端异步回调
【发布时间】:2015-03-24 01:31:27
【问题描述】:

在stack继续执行之前,如何在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 的值?谢谢。

【问题讨论】:

    标签: javascript meteor


    【解决方案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);
    

    【讨论】:

      猜你喜欢
      • 2013-06-26
      • 2016-07-01
      • 2010-10-15
      • 1970-01-01
      • 2017-11-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-10-03
      相关资源
      最近更新 更多