@776166

Как работает вызов асинхронных(?) функций?

Объясните, почему записи
let xhr = new XMLHttpRequest();
xhr.open('GET', someURL, true);
xhr.onload = function(){
    console.log("foo");
}
xhr.send(null);


и

function foo(){
    console.log("foo");
}
let xhr = new XMLHttpRequest();
xhr.open('GET', someURL, true);
xhr.onload = foo();
xhr.send(null);


работают по-разному и совершенно не POLA? В первом случае срабатывает именно по событию onload, а во втором случае функция вызывается сразу. И где про это почитать?
  • Вопрос задан
  • 79 просмотров
Решения вопроса 2
yarkov
@yarkov Куратор тега JavaScript
Помог ответ? Отметь решением.
во втором случае функция вызывается сразу

Потому что вы ее вызываете. Скобки уберите после foo.
Ответ написан
Комментировать
shai_hulud
@shai_hulud
Тут ошибка. Вызов функции вместо установки обработчика события.
xhr.onload = foo();
должно быть так:
xhr.onload = foo;
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

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