使用Odoo8从javascript中的调用函数获取返回值

Fetch returned value from call function in javascript using Odoo8

本文关键字:调用 函数 获取 返回值 Odoo8 javascript 使用      更新时间:2023-09-26

我需要知道如何在调用函数之外获得返回的"结果值"。我可以访问此函数内的值,但无法在函数外分配或获取此值。我试图在这个函数之外创建一个变量,将其值赋值为'my_var = result'。但当我在函数外打印这个值时,它仍然是"未定义的"。如何将值正确分配给变量。

  function check_scheme(pro_detail)
            {              
                var prom_sch = new openerp.Model('promotional.schema');                                       
                prom_sch.call('show',[pro_detail]).then(function(result)
                {                
                  return result
                });                           
                   return prom_sch.call('show',[pro_detail])
            } 

任何建议或指导都将受到的赞赏

您的result是函数外的undefined,因为当您调用函数外的值时,该函数是异步的,结果的值还没有计算出来,所以您需要等待函数完成结果的计算,然后尝试获取值。

为了解决这个问题,有两种方法可以用来获取函数外的值,并在任何地方调用

第一种方法是使用callback,它将帮助您同步函数并获取函数外的数据。

第二种方法是像使用var dfd = new jQuery.Deferred();一样使用JQuery Deferred,它将帮助您同步函数并管理计算值以将其返回到函数之外