无法将<p>文本设置为返回的var

时间:2017-09-11 16:30:15

标签: javascript object return

我有这段代码:

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

谢谢!

1 个答案:

答案 0 :(得分:0)

您不应该从异步运行的函数return。将{{1}}语句替换为最后两行代码。