Нормальное получение данных из AJAX запроса
Есть вот такая вот AJAX функция:
function requestFunc(route) {
const request = new XMLHttpRequest();
request.open("GET", route, true);
request.onreadystatechange = function () {
if (this.readyState === 4) {
if (this.status === 200) {
if (this.responseText != null) {
varForReturn = JSON.parse(this.responseText)
} else alert("Данные не получены");
} else alert("Ошибка" + this.statusText)
}
}
request.send(null)
}
Но данные могу получить из нее, только если переменная(varForReturn) была объявлена вне этой функции.А мне нужно, получать значение из запроса, чтоб вся эта функция(requestFunc) его возвращала return'om. Чтоб работала вот такая конструкция:
var item = requestFunc("какой-то url")
Пробовал в самой функции, до запроса, объявлять переменную, и потом, на том же месте, где varForReturn
приравнивать ее к результату запроса и возвращать, это не работает, возвращается значение, назначенное, при объявлении функции. Как решить эту проблему?