Sobes.tech
Back to questions
Junior — Middle
83

Можете объяснить концепцию промисов в JavaScript и как они используются для обработки асинхронных операций?

Answer from AI

sobes.tech AI

Промисы в JavaScript — это объект, который представляет результат асинхронной операции и позволяет работать с ним, когда операция завершится (успешно или с ошибкой). Они помогают избежать «адского колбэка» (callback hell) и делают код более читаемым.

Промис может находиться в трёх состояниях:

  • pending (ожидание) — операция ещё не завершена;
  • fulfilled (выполнено) — операция успешно завершена;
  • rejected (отклонено) — операция завершилась с ошибкой.

Для создания промиса используется конструктор Promise, который принимает функцию с двумя параметрами: resolve и reject. Когда асинхронная операция завершается, вызывается resolve (успех) или reject (ошибка).

Пример использования промиса:

function fetchData() {
  return new Promise((resolve, reject) => {
    setTimeout(() => {
      const success = true; // имитация результата
      if (success) {
        resolve('Данные получены');
      } else {
        reject('Ошибка при получении данных');
      }
    }, 1000);
  });
}

fetchData()
  .then(result => {
    console.log(result); // 'Данные получены'
  })
  .catch(error => {
    console.error(error);
  });

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