Что такое promise и какие состояния у него есть

Подготовка к собеседованию на Frontend Developer

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

Состояния Promise:

1. Pending (Ожидание) — операция ещё не завершена.

2. Fulfilled (Исполнено) — операция успешно завершена, и promise возвращает результат.

3. Rejected (Отклонено) — произошла ошибка, и promise сообщает причину отказа.

### Пример:

let promise = new Promise(function(resolve, reject) {
    setTimeout(() => {
        // Например, успешный результат
        resolve("data received");
        // Если ошибка
        // reject("error receiving data");
    }, 1000);
});

promise.then(
    result => console.log(result),  // Обработка успеха
    error => console.log(error)     // Обработка ошибки
);

Преимущества:

- Упрощение кода: Обещания позволяют писать асинхронный код, который выглядит последовательным и понятным.

- Цепочки вызовов: Метод .then() можно использовать для создания цепочек действий.

- Групповые операции: Вспомогательные методы вроде Promise.all позволяют работать с несколькими обещаниями одновременно.

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

Роман ЕрмиловРоман Ермиловоколо 2 месяцев назад

Ваш ответ на вопрос

Помогите другим участникам подготовиться к собеседованию и пришлите ответ на вопрос, пожалуйста укажите источник вашего ответа

11 видео, где есть этот вопрос

Подборка видео из публичных собеседований с таймкодом, где задавали этот или похожий на него вопрос

Менторы

Специалисты своей области, которые смогут помочь вам

  • Володин Данил
    Володин Данил

    Senior Frontend в Альфа-Банк

  • Мирзоев Мубориз
    Мирзоев Мубориз

    Middle Frontend developer

  • Левин Ян
    Левин Ян

    Middle+ Frontend

  • Куянец Руслан
    Куянец Руслан

    Senior Frontend Разработчик

  • Тарасов Дамир
    Тарасов Дамир

    Frontend-разработчик в MyfinGroup и Aventica

  • Золотов Всеволод
    Золотов Всеволод

    Frontend Tech Lead

  • Ефремов Денис
    Ефремов Денис

    Senior Fullstack Developer @ Yandex

  • Вейнин Григорий
    Вейнин Григорий

    Senior Frontend Developer

  • Клевогин Максим
    Клевогин Максим

    Middle Frontend developer

  • Бикишов Дмитрий
    Бикишов Дмитрий

    Senior Frontend

© 2024 HireGuru. Сделано в Санкт-Петербурге с hireguru.ru