我有这段代码:
function getJSONVideoInformation(videoUrl, informationPath) {
var jsonPath = 'https://www.googleapis.com/youtube/v3/videos?key=' + googleAPIKey + '&part=snippet&id=' + getVideoId(videoUrl);
var xhr = new XMLHttpRequest();
xhr.onreadystatechange = function() {
if (xhr.readyState === XMLHttpRequest.DONE) {
if (xhr.status === 200) {
var object = JSON.parse(xhr.responseText);
paths = informationPath.split('.'),
for (var i = 0, informationToReturn = object; informationToReturn && i < paths.length; i++) {
informationToReturn = informationToReturn[paths[i]];
}
console.log(informationToReturn);
return informationToReturn;
}
}
};
xhr.open('GET', jsonPath, true);
xhr.send();
}
var newP = document.createElement('p');
newP.innerHTML = getJSONVideoInformation(videoUrl, 'items.0.snippet.title');
我的目标是显示带有&#39; informationToReturn&#39;作为文字。 当我执行代码时,一切似乎都有效,函数中的console.log在控制台中显示了良好的值(即文本),但newP仅显示&#39; undefined&#39;。
我无法弄清楚错误:c
谢谢!
答案 0 :(得分:0)
您不应该从异步运行的函数return
。将{{1}}语句替换为最后两行代码。