2015-12-09 27 views
1

我需要知道如何才能在調用函數之外獲得返回的「結果值」。我可以訪問此函數中的值,但我無法在函數外分配或獲取此值。我試圖在這個函數之外創建一個變量,將其值設爲'my_var = result'。但是當我在函數外打印這個值時,它仍然是'未定義的'。我怎樣才能正確地賦值給一個變量。使用Odoo8在JavaScript中從調用函數中獲取返回值

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

任何建議或指導可以理解

回答

0

resultundefined的功能之外,因爲當你調用之外它的價值結果的價值尚未計算,所以你需要這個功能是異步等待你的函數完成結果的計算,然後嘗試獲得該值。

爲了解決這個問題有兩種方法可以遵循,以獲得功能以外的值,並調用它的任何地方

第1種方法是使用callback它會幫助你同步的功能,讓您的數據功能之外。

第2種方法是使用jQuery Deferred這樣var dfd = new jQuery.Deferred();它會幫助你同步的功能和管理計算值返回它的函數

+0

我似乎沒有回調在我的情況下工作或IM做的事情之外錯誤 –

相關問題