как вернуть значение из функции XMLHttpRequest() (запрос к файлу PHP)

У меня есть функция в которой я получаю нужные мне данные и вижу их в консоле, все отлично работает:

function getData(file, id) {
    let xmlhttp = new XMLHttpRequest();
    xmlhttp.onreadystatechange = function() {
        if (this.readyState==4 && this.status==200) {
            console.log(this.responseText);
        }
    }
    xmlhttp.open("POST", file, true);
    xmlhttp.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
    xmlhttp.send("user_id=" + id);
}
getData("user.php", 1);

Я хочу сделать так, что бы функция возвращала this.responseText, поэтому я дописал функцию вот так:

function getData(file, id) {
    let str;
    let xmlhttp = new XMLHttpRequest();
    xmlhttp.onreadystatechange = function() {
        if (this.readyState==4 && this.status==200) {
            srt = this.responseText;
        }
    }
    xmlhttp.open("POST", file, true);
    xmlhttp.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
    xmlhttp.send("user_id=" + id);

    return str;
}
let data = getData("user.php", 1);
console.log(data);

В консоле я получаю "undefined". Почему так происходит?


Ответы (0 шт):