为了账号安全,请及时绑定邮箱和手机立即绑定

承诺后的返回值

/ 猿问

承诺后的返回值

慕后森 2019-11-18 10:53:17

我有一个javascript函数,我想在其中返回return方法后得到的值。容易看比解释


function getValue(file){

    var val;

    lookupValue(file).then(function(res){

       val = res.val;

    }

    return val;

}

兑现承诺的最佳方法是什么?据我了解,return val将在lookupValue完成之前返回,但是我不能那样return res.val做,只是从内部函数返回。


查看完整描述

2 回答

?
阿波罗的战车

使用以下模式:


function getValue(file) {

  return lookupValue(file);

}


getValue('myFile.txt').then(function(res) {

  // do whatever with res here

});

(尽管这有点多余,但我确定您的实际代码会更复杂)


查看完整回答
反对 回复 2019-11-18
?
冉冉说

最好的方法是像这样使用promise返回函数。


lookupValue(file).then(function(res) {

    // Write the code which depends on the `res.val`, here

});

调用异步函数的函数不能等到异步函数返回值。因为,它仅调用异步函数并执行其中的其余代码。因此,当异步函数返回值时,调用它的同一函数将不会接收该值。


因此,通常的想法是在异步函数本身中编写依赖于异步函数返回值的代码。


查看完整回答
反对 回复 2019-11-18

添加回答

回复

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信