Обещания, обратные вызовы и async/await — все это методы, используемые в JavaScript для управления асинхронным выполнением кода.

  • Обратные вызовы — это функции, которые передаются в качестве аргументов другим функциям, которые вызываются после завершения асинхронной операции. Обратные вызовы могут привести к «аду обратных вызовов», ситуации, когда глубоко вложенные и трудночитаемые функции обратного вызова используются для обработки нескольких асинхронных операций.
  • Промисы обеспечивают более структурированный и читаемый способ обработки асинхронного кода. Они представляют значение, которое может быть еще недоступно, и позволяют регистрировать обратные вызовы, которые будут выполняться, как только значение станет доступным. Обещания могут быть объединены в цепочку, что упрощает управление несколькими асинхронными операциями.
  • Async/Await — это недавнее дополнение к JavaScript, основанное на обещаниях предоставить еще более чистый синтаксис для обработки асинхронного кода. Он позволяет писать асинхронный код в синхронном стиле, что упрощает его чтение и понимание. Ключевое слово async используется для определения функции, которая возвращает обещание, а ключевое слово await используется для приостановки выполнения функции до тех пор, пока обещание не будет разрешено.

Вот пример каждого метода, используемого для выполнения HTTP-запроса:

Пример обратного вызова:

Пример обещания:

Асинхронно/ожидание: