我有一个脚本,可以对YouTube API进行ajax调用,对数据进行建模并将其返回为变量,以备使用。
但是,当我尝试从ajax调用函数创建变量时,调用的变量始终为undefined
。
这是脚本
var videos = requestVideos(username, playlistId, 30);
console.dir(videos); // undefined
function requestVideos(username, playlistId, max) {
$.ajax({
type: 'GET',
url: 'https://mymicroservice.example/youtube.php?username='+ username + '&id=' + playlistId + '&maxResults=' + max + '&type=json&source=playlist',
mimeType: 'application/json; charset=utf-8',
dataType: 'json',
success: getVideoData,
error: function() {
console.log("Error: unable to get data from endpoint");
}
});
}
function getVideoData(videoData) {
var playlistVideos = {"videos" : []};
var videoData = videoData.items;
for(i = 0; i < videoData.length; i++) {
var video = {
'id': videoData[i].contentDetails.videoId,
'headline': videoData[i].snippet.title,
'thumbnail': videoData[i].snippet.thumbnails.standard.url
};
playlistVideos.videos.push(video); // Push video to videos array
}
return playlistVideos.videos;
}
谁能告诉我我做错了什么?我已将数据建模移至另一个功能,因此不会异步完成。