This question already has answers here:
How do I return the response from an asynchronous call?
                            
                                (38个答案)
                            
                    
                2年前关闭。
        

    

我正在写一个Javascript函数,它将返回一个数字作为结果。这是我的代码:

get_tiquete_hacienda: function (){
var myconsecutivo = 0;

            var rpc2 = require('web.rpc');
            rpc2.query({
                model: 'pos.order',
                method: 'compute_sales_bsi'
            }).then(function(res) {
                myconsecutivo = res;
                console.log('soy el otro: ' + myconsecutivo);
             });
return myconsecutivo;
}


如果我看一下控制台,“ soy el otro:”将显示正确的值
但是返回myconsecutivo是未定义的

为什么会这样呢?

最佳答案

get_tiquete_hacienda: function (){
var myconsecutivo = 0;

            var rpc2 = require('web.rpc');
            return rpc2.query({
                model: 'pos.order',
                method: 'compute_sales_bsi'
            }).then(function(res) {
                myconsecutivo = res;
                console.log('soy el otro: ' + myconsecutivo);
                return myconsecutivo;
             });
}

get_tiquete_hacienda().then(function (myconsecutivo) {
  // myconsecutivo is correct here
});


或更简洁地说:

get_tiquete_hacienda: function (){
  var rpc2 = require('web.rpc');
  return rpc2.query({
    model: 'pos.order',
    method: 'compute_sales_bsi'
  }).then(function(res) {
    console.log('soy el otro: ' + res);
    return res;
  });
}

get_tiquete_hacienda().then(function (myconsecutivo) {
  // myconsecutivo is correct here
});

关于javascript - undefined variable 返回,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/52844296/

10-12 12:28
查看更多