Sobes.tech
Back to questions
Middle
3

Как работать с асинхронным JavaScript? В чём разница между Promise и async/await?

Companies where asked
Data World

Answer from AI

sobes.tech AI

Асинхронный JavaScript позволяет выполнять операции, которые занимают время (например, запросы к серверу), не блокируя основной поток выполнения.

Promise — это объект, который представляет результат асинхронной операции и может находиться в трёх состояниях: ожидание, выполнено успешно, выполнено с ошибкой. С помощью методов .then() и .catch() можно обрабатывать результат или ошибку.

async/await — синтаксический сахар над Promise, который позволяет писать асинхронный код в стиле синхронного, делая его более читаемым и понятным. Функция, объявленная с async, возвращает Promise, а await приостанавливает выполнение до завершения Promise.

Пример с Promise:

fetch('https://api.example.com/data')
  .then(response => response.json())
  .then(data => console.log(data))
  .catch(error => console.error(error));

То же с async/await:

async function getData() {
  try {
    const response = await fetch('https://api.example.com/data');
    const data = await response.json();
    console.log(data);
  } catch (error) {
    console.error(error);
  }
}
getData();

Основное отличие — async/await делает код более линейным и удобным для чтения, особенно при цепочке асинхронных операций.