JS中双层回调的场景下,如何返最里层的值 ?
发布于 1年前 作者 springlin2012 703 次浏览

类似于这样场景,我想拿到callback.getVal() 中返回的 value,大家有什么好的办法没?

function () {

  var aValue = a();

  function a() {
    return B.a("param", function (err, callback){
       return callback.getVal(err, value) {
          var val = value.Result;
          //这里可以拿到值
          console.log(val);
          return val;
        }
     });
  
  }

}
5 回复

这种 情况是有可能拿到的 只能给函数 传一个回调函数 function (cb) {

var aValue = a();

function a() { return B.a("param", function (err, callback){ return callback.getVal(err, value) { var val = value.Result; //这里可以拿到值

      cb(val);





      console.log(val);
      return val;
    }
 });

}

}

异步执行没法直接返回数据的,同意楼上的说法,采用传入回调函数的方法。

就是使用 回调函数的方法, 也没办法解决这个应用场景问题, 因为我用的是Meteor, 是clien端 call server端的方法, 没办法传入回调

@springlin2012那就试试eventproxy吧,不知是否适用

@thesadboy 我这边是 客户端 call 服务端的异步调用, 所以这个模块也不能解决这问题, 不过还是谢谢thesadboy!

回到顶部