【发布时间】:2017-02-17 18:37:43
【问题描述】:
我正在使用 javascript youtube API v3 在一些视频数据中请求 3 个不同的播放列表。它工作正常,但方法execute() 请求的视频数据超出了循环中调用的顺序(刷新page)。代码非常简单,可以调试here,或者如果喜欢这里:
var playlistsID = [...]
for (var i = 0; i < playlistsID.length; i++) {
function playlistItem() {
var request = gapi.client.youtube.playlistItems.list({
part: 'snippet',
playlistId: playlistsID[i],
maxResults: 4
});
request.execute(function(response) {
if ('error' in response) {
console.log(response.error.message);
}
else {
for (var j = 0; j < response.items.length; j++) {
showVideo(response.items[j]);
}
}
});
}
}
function showVideo(response) {
var videoThumb = response.snippet.thumbnails.medium.url,
container = document.getElementById("video-container"),
videoDiv = document.createElement("div"),
image = document.createElement("img");
image.setAttribute("src", videoThumb);
container.appendChild(videoDiv);
videoDiv.appendChild(image);
}
我的理论是execute() 方法正在异步请求信息,但如果这是正确的,我应该怎么做才能在请求中设置顺序?
【问题讨论】:
标签: javascript youtube-api youtube-javascript-api youtube-data-api