我有一个函数,它将返回 JSON。检查调用函数中返回的数据时发现未定义。
我唯一能想到的是ajax是异步的,它不等待数据返回。因为这可能是第二个警报框在第一个警报之前被触发的唯一原因。
$.get( '/search/s/g/' , { 'q' : query } , function(data) {
var result = $.parseJSON(data);
if ( result.length < 10 ) {
data2 = extendSearch(query);
alert("second"); // This got triggered first.
}
populateSearchResult(result);
});
function extendSearch(q) {
$.get('/search/s/f/', { 'q': q }, function(data) {
alert("first"); // This got triggered as the second alert box
return data;
});
}
现在我该如何解决这个问题?
最佳答案
不返回数据,在 expandSearch
中执行成功回调中需要执行的操作。
function expandSearch(q) {
$.get('/search/s/f/', { 'q': q }, function(data) {
alert("first"); // This got triggered as the second alert box
// do something with the data here
// modify dom or w/e
});
}
关于javascript - 返回$.get的结果什么也不返回,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19819395/