返回未定义的变量

Undefined variable returned

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

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:" 会呈现正确的值 但是 return myconsecutivo 未定义

为什么会这样?

您需要 return “then”语句中的值。

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
});