Ajax数据未分配给变量

时间:2018-08-01 11:38:12

标签: javascript ajax asynchronous

我有一个脚本,可以对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;
}

谁能告诉我我做错了什么?我已将数据建模移至另一个功能,因此不会异步完成。

0 个答案:

没有答案