Sobes.tech
Back to questions
Junior — Middle
86

Чем отличается использование метода .then от использования оператора await при работе с промисами?

Answer from AI

sobes.tech AI

Метод .then и оператор await оба используются для работы с промисами, но отличаются по синтаксису и стилю обработки асинхронного кода:

  • .then — это метод промиса, который принимает колбэк для обработки результата или ошибки. Позволяет строить цепочки вызовов, но код может стать менее читаемым при большом количестве вложенных .then.

  • await — оператор, который можно использовать только внутри асинхронной функции (async). Он приостанавливает выполнение функции до разрешения промиса, позволяя писать асинхронный код в стиле синхронного, что улучшает читаемость и упрощает обработку ошибок через try/catch.

Пример с .then:

fetch(url)
  .then(response => response.json())
  .then(data => console.log(data))
  .catch(error => console.error(error));

Пример с await:

async function fetchData() {
  try {
    const response = await fetch(url);
    const data = await response.json();
    console.log(data);
  } catch (error) {
    console.error(error);
  }
}
fetchData();

Таким образом, await делает асинхронный код более линейным и удобным для чтения, а .then — более традиционный способ работы с промисами.