Показать сообщение отдельно
  #2 (permalink)  
Старый 14.12.2018, 22:42
Профессор
Отправить личное сообщение для Nexus Посмотреть профиль Найти все сообщения от Nexus
 
Регистрация: 04.12.2012
Сообщений: 3,728

Вы не понимаете, как работает ваш код.
Как будет выполняться ваш код:
var a;//Шаг 1
    const myButton = document.querySelector('#myButton');//2
    const content = document.querySelector('#content');//3
    myButton.addEventListener('click', function () {//4, только объявление обработчика, не его выполнение
        const xhr = new XMLHttpRequest();//6, эта строка будет выполнена только после того, как по кнопке кликнут
        xhr.open('GET', 'http://testhtml/some.php');//7
        xhr.send();//8

        xhr.addEventListener('load', function () {//9, объявление обработчика, не его выполнение
            a = xhr.responseText;//10, эта строка будет выполнена, только когда запрос завершится успешно
            console.log(a);//11
            return a;//12, эта строка бесполезна, можно удалить
        });
    });

    console.log(a);//5, значение переменной все еще undefined

Чтобы вам иметь возможность работать с результатами запроса, код нужно писать в обработчике события load объекта xhr.


К удивлению, ничего внятного в сети по асинхронности быстро найти не удалось.
Ответить с цитированием