Обещание XMLHttpRequest, вложенное в некоторый код синхронизации - PullRequest
0 голосов
/ 11 октября 2018

Почему синхронизация xmlhttprequest устарела?

Буду признателен, если браузер ожидает данные вместо того, чтобы открывать их для дальнейшего щелчка без завершения запроса данных.

Я хотел бынаписать программу с одним шагом за другим.Более того, код должен быть правильно структурирован, и мне интересно, как я могу реализовать это без обещания ада.

Есть ли какая-либо альтернатива синхронизации xmlhttprequest, которая не является "устаревшей"?

Спасибо, Томас

1 Ответ

0 голосов
/ 11 октября 2018

Почему синхронизация 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 позволяет синхронно писать асинхронный код.

Не ожидайте, что пойметеэто все сразу - все нормально, нужно время.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...