Podcast
Questions and Answers
Який з наступних станів не є одним із станів Promise в JavaScript?
Який з наступних станів не є одним із станів Promise в JavaScript?
- Fulfilled (виконано)
- Pending (очікування)
- Processing (обробка) (correct)
- Rejected (відхилено)
Яка функція використовується для переведення Promise зі стану очікування (pending) у стан виконано (fulfilled)?
Яка функція використовується для переведення Promise зі стану очікування (pending) у стан виконано (fulfilled)?
- `catch()`
- `resolve()` (correct)
- `finally()`
- `reject()`
Який метод використовується для обробки відхилень Promise?
Який метод використовується для обробки відхилень Promise?
- `then()`
- `catch()` (correct)
- `finally()`
- `resolve()`
Який метод Promise виконує код незалежно від того, чи був Promise виконаний чи відхилений?
Який метод Promise виконує код незалежно від того, чи був Promise виконаний чи відхилений?
Яка основна перевага використання Promises перед колбеками для обробки асинхронних операцій?
Яка основна перевага використання Promises перед колбеками для обробки асинхронних операцій?
Що повертає метод then()
?
Що повертає метод then()
?
Яка різниця між Promise.resolve(value)
та Promise.reject(reason)
?
Яка різниця між Promise.resolve(value)
та Promise.reject(reason)
?
Що станеться, якщо один з Promise, переданих до Promise.all()
, буде відхилено?
Що станеться, якщо один з Promise, переданих до Promise.all()
, буде відхилено?
В чому різниця між Promise.all()
і Promise.allSettled()
?
В чому різниця між Promise.all()
і Promise.allSettled()
?
Яке призначення методу Promise.race()
?
Яке призначення методу Promise.race()
?
Яку проблему вирішує використання ключових слів async
та await
?
Яку проблему вирішує використання ключових слів async
та await
?
Де можна обробляти помилки в async/await
коді?
Де можна обробляти помилки в async/await
коді?
Що станеться, якщо в async
функції не обробити відхилення Promise?
Що станеться, якщо в async
функції не обробити відхилення Promise?
Який з наступних варіантів найкраще описує призначення функції Promise.any()
?
Який з наступних варіантів найкраще описує призначення функції Promise.any()
?
Яке з наступних тверджень правильно описує ланцюжок Promise?
Яке з наступних тверджень правильно описує ланцюжок Promise?
У контексті Promise, коли важливо використовувати Promise.allSettled()
замість Promise.all()
?
У контексті Promise, коли важливо використовувати Promise.allSettled()
замість Promise.all()
?
Який з наведених нижче варіантів найкраще описує, як працює ключове слово await
у JavaScript?
Який з наведених нижче варіантів найкраще описує, як працює ключове слово await
у JavaScript?
Що таке AggregateError
і в якому випадку він виникає при роботі з Promise?
Що таке AggregateError
і в якому випадку він виникає при роботі з Promise?
Як можна запобігти проблемам, пов'язаним з необробленими відхиленнями Promise (unhandled rejections) у JavaScript?
Як можна запобігти проблемам, пов'язаним з необробленими відхиленнями Promise (unhandled rejections) у JavaScript?
Flashcards
Promise в JavaScript
Promise в JavaScript
Об'єкт, що представляє завершення (або невдачу) асинхронної операції.
Promise: стан pending
Promise: стан pending
Стан очікування, операція ще не завершена.
Promise: стан fulfilled
Promise: стан fulfilled
Операція успішно завершена.
Promise: стан rejected
Promise: стан rejected
Signup and view all the flashcards
Функція resolve
Функція resolve
Signup and view all the flashcards
Функція reject
Функція reject
Signup and view all the flashcards
Метод then(onFulfilled)
Метод then(onFulfilled)
Signup and view all the flashcards
Метод catch(onRejected)
Метод catch(onRejected)
Signup and view all the flashcards
Метод finally(onFinally)
Метод finally(onFinally)
Signup and view all the flashcards
Promise.resolve(value)
Promise.resolve(value)
Signup and view all the flashcards
Promise.reject(reason)
Promise.reject(reason)
Signup and view all the flashcards
Promise.all(iterable)
Promise.all(iterable)
Signup and view all the flashcards
Promise.allSettled(iterable)
Promise.allSettled(iterable)
Signup and view all the flashcards
Promise.race(iterable)
Promise.race(iterable)
Signup and view all the flashcards
Promise.any(iterable)
Promise.any(iterable)
Signup and view all the flashcards
Ключове слово async
Ключове слово async
Signup and view all the flashcards
Ключове слово await
Ключове слово await
Signup and view all the flashcards
Блок try...catch
Блок try...catch
Signup and view all the flashcards
Обробка помилок Promise
Обробка помилок Promise
Signup and view all the flashcards
Study Notes
- Об'єкти
Promise
в JavaScript представляють собою кінцеве завершення (або невдачу) асинхронної операції. Promise
надає більш структурований спосіб обробки асинхронних операцій у порівнянні з колбеками, вирішуючи проблеми, такі як "callback hell".Promise
може перебувати в одному з трьох станів: очікування (pending
), виконано (fulfilled
/resolved
) або відхилено (rejected
).- Стан очікування (
pending
) є початковим станом, що означає, що операція ще триває. - Стан виконано (
fulfilled
) означає, що операція успішно завершена. - Стан відхилено (
rejected
) означає, що операція не вдалася.
Створення Promise
Promise
створюються за допомогою конструктораnew Promise()
.- Конструктор приймає функцію, яка називається "executor", що містить асинхронну операцію.
- Функція "executor" отримує два аргументи:
resolve
іreject
. resolve
— це функція, яка, коли її викликають, переводитьpromise
зі стану очікування в стан виконано. Вона також передає значення методуthen
promise
.reject
— це функція, яка, коли її викликають, переводитьpromise
зі стану очікування в стан відхилено. Вона також передає причину (зазвичай об'єкт помилки) методуcatch
promise
.
Методи Promise: then, catch і finally
then(onFulfilled, onRejected)
використовується для обробки виконанняpromise
.then
приймає два необов'язкових аргументи:onFulfilled
іonRejected
.onFulfilled
— це функція зворотного виклику, яка виконується, колиpromise
успішно виконано. Вона отримує виконане значення як аргумент.onRejected
— це функція зворотного виклику, яка виконується, колиpromise
відхилено. Вона отримує причину відхилення як аргумент.catch(onRejected)
використовується для обробки відхиленьpromise
.catch
приймає один аргумент:onRejected
, який є функцією зворотного виклику, що виконується, колиpromise
відхилено. Вона отримує причину відхилення як аргумент і є еквівалентною.then(null, onRejected)
.finally(onFinally)
використовується для виконання коду незалежно від того, чиpromise
виконано, чи відхилено.finally
приймає один аргумент:onFinally
, який є функцією зворотного виклику, що виконується, колиpromise
завершено (виконано або відхилено). Вона не отримує жодних аргументів і зазвичай використовується для операцій очищення.
Ланцюжки Promise
Promise
можна об'єднувати в ланцюжки за допомогою методуthen
.- Кожен метод
then
повертає новийpromise
, що дозволяє створити послідовність асинхронних операцій. - Якщо функція
onFulfilled
у методіthen
повертає значення, наступний методthen
у ланцюжку отримає це значення. - Якщо функція
onFulfilled
повертаєpromise
, наступний методthen
чекатиме, поки цейpromise
буде виконано, перш ніж виконуватися. - Це дозволяє створювати складні асинхронні робочі процеси в читабельний і керований спосіб.
Promise.resolve() і Promise.reject()
Promise.resolve(value)
створюєpromise
, який негайно виконується з заданим значенням.Promise.reject(reason)
створюєpromise
, який негайно відхиляється з заданою причиною.- Ці методи корисні для створення
promise
із синхронних значень або помилок.
Promise.all()
Promise.all(iterable)
приймає ітерований об'єкт (iterable
, наприклад, масив)promise
як вхідні дані.- Він повертає один
promise
, який виконується, коли всі вхідніpromise
виконано. - Виконане значення — це масив, що містить виконані значення вхідних
promise
у тому самому порядку, що й у вхідному ітерованому об'єкті. - Якщо будь-який із вхідних
promise
відхилено,Promise.all()
негайно відхиляється з причиною відхилення першого відхиленогоpromise
. Promise.all()
корисний, коли потрібно виконати кілька асинхронних операцій паралельно та дочекатися завершення всіх їх перед продовженням.
Promise.allSettled()
Promise.allSettled(iterable)
приймає ітерований об'єктpromise
як вхідні дані.- Він повертає один
promise
, який виконується, коли всі вхідніpromise
завершено (виконано або відхилено). - Виконане значення — це масив об'єктів, кожен із яких описує результат
promise
. - Кожен об'єкт має властивість
status
, яка має значення "fulfilled" або "rejected". - Якщо статус має значення "fulfilled", об'єкт має властивість
value
, що містить виконане значення. - Якщо статус має значення "rejected", об'єкт має властивість
reason
, що містить причину відхилення. Promise.allSettled()
корисний, коли потрібно виконати кілька асинхронних операцій паралельно та потрібно знати результат кожної операції, незалежно від того, чи вони успішні, чи зазнають невдачі.
Promise.race()
Promise.race(iterable)
приймає ітерований об'єктpromise
як вхідні дані.- Він повертає один
promise
, який виконується або відхиляється відразу, як тільки перший із вхіднихpromise
буде виконано або відхилено. - Повернений
promise
переходить у стан (виконано або відхилено) і приймає значення/причину першогоpromise
, який завершився. Promise.race()
корисний, коли потрібно виконати кілька асинхронних операцій і важливо лише завершення першої з них.
Promise.any()
Promise.any(iterable)
приймає ітерований об'єктpromise
як вхідні дані.- Він повертає один
promise
, який виконується, як тільки перший із вхіднихpromise
буде виконано. - Якщо всі вхідні
promise
відхилено, повернутийpromise
відхиляється з помилкоюAggregateError
, що містить усі причини відхилення. Promise.any()
корисний, коли потрібно виконати кілька асинхронних операцій і важливий лише успіх першої з них і потрібно обробити випадок, коли всі вони зазнають невдачі.
Async/Await
async
іawait
— це синтаксичний цукор, побудований на основіpromise
, що полегшує написання й читання асинхронного коду.- Ключове слово
async
використовується для визначення асинхронної функції. - Асинхронна функція неявно повертає
promise
. - Ключове слово
await
використовується всередині асинхронної функції, щоб призупинити виконання функції, докиpromise
не буде виконано. - Ключове слово
await
можна використовувати лише всередині асинхронної функції. - Коли
await
використовується зpromise
, асинхронна функція чекає, покиpromise
буде виконано, а потім повертає виконане значення. - Якщо
promise
відхилено, виразawait
створює помилку, яку можна перехопити за допомогою блокуtry...catch
.
Обробка помилок
- Помилки в
promise
можна обробляти за допомогою методуcatch
або зворотного викликуonRejected
у методіthen
. - Важливо обробляти помилки в кожному ланцюжку
promise
, щоб запобігти необробленим відхиленням. - У коді
async/await
помилки можна обробляти за допомогою блоківtry...catch
. - Необроблених відхилень слід уникати, оскільки вони можуть спричинити неочікувану поведінку.
Studying That Suits You
Use AI to generate personalized quizzes and flashcards to suit your learning preferences.