函数 returns 在 Javascript 中未定义

Function returns undefined in Javascript

无法弄清楚如何从这个函数中 return 值(字符串):

function loadPage(url) {
    var xhttp = new XMLHttpRequest();
    xhttp.open("GET", url, true);
    xhttp.send();

    xhttp.onreadystatechange = function() {
        if (xhttp.readyState == 4 && xhttp.status == 200) {
            //var html = xhttp.responseText
            var html = document.documentElement.outerHTML;
            return html
        }
    }
}

console.log(loadPage("http://stops.lt/vilnius/#trol/2/a-b"))

当我在 xhttp.onreadystatechange 中使用 console.log(html) 时,它打印出正确的结果,但我不明白如何 return loadPage(url)。尝试了 return xhttp.onreadystatechangereturn xhttp.onreadystatechange() 以及 none 这些作品。

函数加载页面是异步的,需要使用回调函数(或Promise):

function loadPage(url, cb) {
    var xhttp = new XMLHttpRequest();
    xhttp.open("GET", url, true);
    xhttp.send();

    xhttp.onreadystatechange = function() {
        if (xhttp.readyState == 4 && xhttp.status == 200) {
            //var html = xhttp.responseText
            var html = document.documentElement.outerHTML;
            cb(html);
        }
    }
}
loadPage("http://stops.lt/vilnius/#trol/2/a-b", function(html){
    console.log(html);
});