Почему синхронизация xmlhttprequest устарела?
Поскольку она блокирует цикл обработки событий и обеспечивает плохой пользовательский интерфейс для ваших конечных пользователей.
По сути, он «замораживает» страницу, пока она происходит.
Я был бы признателен, если бы браузер ждал данных
Хотя браузеры работают не так.К счастью, с практикой работа браузеров do начинает обретать невероятный смысл - этого достаточно для языков, которые ранее использовали в основном синхронный ввод-вывод, например Python, для добавления «обещаний».
Я хотел бы написать программу с одним шагом за другим.
Вы можете возвращать ответы от асинхронных вызовов в JavaScript.Использование асинхронного / ожидающего кода выглядит довольно схожим и читабельным.См. страницу async function
mdn .
Более того, код должен быть правильно структурирован, и мне интересно, как я могу это реализовать без ада обещаний.
«Обещание ада» относится к тому факту, что когда функция выполняет ввод-вывод всех остальных функций, она вызывает это.Я не уверен, что это плохо или что-то не так с
async function sequence() {
let one = await fetch('/your-endpoint?someParam').then(x => x.json());
// do something with one
let param = one.param;
let two = await fetch('/your-other?param=' + param).then(x => x.json());
// do something with second call
}
sequence();
То есть async / await позволяет синхронно писать асинхронный код.
Не ожидайте, что пойметеэто все сразу - все нормально, нужно время.