alexdeg
@alexdeg
Новатор

Почему выдает undefined внутри XMLHttpRequest?

function get_manager(manager_id) {
    var xhr_one = new XMLHttpRequest();
    var name_manager = '';

    xhr_one.open('get', 'http://localhost:8000/get_managers?mid=' + manager_id + '&secure=' + localStorage.getItem('secure'), true);
    xhr_one.send();

    xhr_one.addEventListener('load', function () {
        name_manager = JSON.parse(xhr_one.response);

        return name_manager.fullname;
    });
}


Почему выдает undefined? Если поместить return снаружи то вообще ничего не выводит
  • Вопрос задан
  • 229 просмотров
Решения вопроса 1
rework
@rework
Помог ответ? В благодарность отметь его решением
Можно сделать, что бы функция get_manager возвращала promise:

function get_manager(manager_id) {
  return new Promise(function (resolve, reject) {
    var xhr_one = new XMLHttpRequest();
    var name_manager = '';

    xhr_one.open('get', 'http://localhost:8000/get_managers?mid=' + manager_id + '&secure=' + localStorage.getItem('secure'), true);
    xhr_one.send();

    xhr_one.addEventListener('load', function () {
        name_manager = JSON.parse(xhr_one.response);
        resolve(name_manager.fullname);
    });
    
    xhr_one.addEventListener('error', function () {
      reject({
        status: this.status,
        statusText: xhr_one.statusText
      });
    });
  }
}


вызывать её так:

get_manager(manager_id).then((name_manager) => {
  console.log(name_manager);
});
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
Rsa97
@Rsa97
Для правильного вопроса надо знать половину ответа
А куда return должен возвратить ответ, если функция срабатывает асинхронно, после прихода ответа от сервера?
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы