返回$ .get的结果不返回任何内容

时间:2013-11-06 18:02:56

标签: javascript jquery

我有一个返回JSON的函数。在检查调用函数中返回的数据时,发现它是未定义的。

我唯一能想到的是ajax是异步的,并没有等待返回数据。 Cuz可能是第一个警报之前触发第二个警报框的唯一原因。

$.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;
    });
}

现在我该如何解决这个问题?

1 个答案:

答案 0 :(得分:1)

不要返回数据,在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
    });
}