2015-04-27 57 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); 
});