可能重複:
jQuery AJAX: return value on success的Javascript/jQuery函數返回值爲空
我試圖從YouTube的數據API加載歌曲列表,並獲得了成功,直到我把它弄壞了出來進入它自己的功能。
問題是,當我將局部變量的值返回到調用函數時會蒸發。基本上,當我嘗試使用它時,它是一個空數組,當它有值時。有人知道可能會發生什麼嗎?
function LoadSongList(feed){
songList = new Array();
$.getJSON(feed, function(data){
if (data['feed']) {
$.each(data['feed']['entry'], function(i, entry){
songList.push({
videoID: entry.media$group.yt$videoid.$t,
title: entry.title.$t,
tumbnailUrl: entry.media$group.media$thumbnail[0].url,
author: entry.author[0].name.$t
});
});
}
});
return songList;
}
提示:領先的** A **在AJAX – Alexander
我可以有另一種暗示?我不確定「AJAX中的A」是什麼意思?通常,我只想構建標題,視頻ID和作者姓名的結構數組,並將其返回給調用函數。 – user1709730
「Ajax」中的「a」代表「異步」。 '$ .getJSON()'函數在收到Ajax結果之前立即返回,然後你的'return songList'執行完全正確地返回一個空數組,因爲它在這一點上仍然是空的。然後,在當前的JS完成之後,異步但絕對地,你提供給'$ .getJSON()'的回調將被執行並運行你的'$ .each()'循環。 – nnnnnn