2015-04-27 52 views
-2

在腳本a.js我有這樣的功能:Ajax Jquery:如何返回結果?

function callGetAjax(url,callback) { 
     $.get(url, {}, function(result) { 
      // this will call the callback and pass the result 
      callback(result); 
     }); 
} 

在腳本b.js我把它叫做:

var url = '/feed/location'; 
callGetAjax(url,function(result) 
{ 
    //console.log(result); <= of course this logs right 
    data = result; 
    return data; 
}); 
console.log(result); // <= ReferenceError: result is not defined 
console.log(data); // <= ReferenceError: data is not defined 

我不想讓async:false但我需要「出口「數據來闡述它。謝謝。

+0

它看起來像你不知道如何回調工作。我建議你閱讀一下。 – Siguza

+1

您不能從異步方法返回。這就像在網上訂購比薩餅並在它進入你的房子之前吃它。你不能回來。所有的邏輯需要在回調執行時發生。所以你需要把你的邏輯分解成幾部分。之前和之後的部分。 – epascarello

+0

好的,都清楚了,謝謝@epascarello – sineverba

回答

0

Ajax是一個異步工具,因此您只能在其中使用數據。所以,如果你需要改變數據你應該直接做:

var url = '/feed/location'; 
callGetAjax(url,function(result) 
{ 
    //console.log(result); <= of course this logs right 
    data = result; 
    $('#some_dome_item').html(data); 
});