JSONを返す関数があります。呼び出し元の関数で返されたデータを確認すると、未定義であることがわかりました。
私が考えることができる唯一のことは、ajax が非同期であり、データが返されるのを待たなかったことです。これが、最初のアラートの前に 2 番目のアラート ボックスがトリガーされた唯一の理由である可能性があります。
$.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;
});
}
これをどのように解決しますか?