JavaScript·100 питань

[ITEM 5] QUESTION: Як створити Promise?

Відповідь

Створення промісу в JavaScript здійснюється за допомогою спеціального конструктора new Promise(). Цей конструктор приймає як аргумент функцію-виконавець, яку розробники часто називають екзекутором. Ця функція автоматично запускається одразу після створення промісу і приймає два обов'язкові параметри, які самі по собі є функціями: resolve та reject.

Перша функція, resolve, використовується для успішного завершення операції. Коли асинхронне завдання в тілі екзекутора успішно виконано, ви викликаєте resolve(value), передаючи їй отриманий результат. Це переводить проміс зі стану очікування в стан виконання, роблячи значення доступним для методу then(). Друга функція, reject, викликається в тому разі, якщо в процесі виконання завдання сталася помилка або умова не була виконана. Ви викликаєте reject(error), передаючи об'єкт помилки, що переводить проміс у стан відхилення та активує обробники помилок.

Крім ручного створення промісів через конструктор за допомогою екзекутора, JavaScript надає корисні статичні методи для швидкого створення готових промісів. Наприклад, метод Promise.resolve(value) повертає проміс, який уже перебуває в стані fulfilled з переданим значенням. Це буває корисно, коли вам потрібно уніфікувати інтерфейс функції, яка в деяких випадках може повертати синхронне значення, а в інших — асинхронний проміс.

Аналогічним чином працює метод Promise.reject(error), який одразу створює і повертає відхилений проміс із вказаною причиною помилки. Використання цих статичних методів значно спрощує написання допоміжного коду та дозволяє ефективно керувати потоком асинхронних даних у сучасних додатках без зайвого бойлерплейту.

Чи корисна ця відповідь?

Інші питання цієї теми

Пов’язані питання з інших тем