You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Навколо функції проміса та обробників знаходиться "невидимий `try..catch`". Якщо відбувається помилка, то її перехоплюють і опрацьовують як ніби був запущений `reject`.
45
+
Навколо функції проміса та обробників є "невидимий `try..catch`". Якщо відбувається помилка, то її перехоплюють і опрацьовують як ніби був запущений `reject`.
46
46
47
47
Наприклад, цей код:
48
48
@@ -66,7 +66,7 @@ new Promise((resolve, reject) => {
66
66
67
67
"Невидимий `try..catch`" навколо промісу автоматично перехоплює помилку і перетворює її на відхилений проміс.
68
68
69
-
Це працює не лише в функцієї-"виконавцем", але і в обробниках. Якщо ми створимо помилку (`throw`) в обробнику (`.then`), то проміс вважатиметься відхиленим, і управління перейде до найближчого обробника помилок.
69
+
Це працює не лише в функції, яка створює проміс, але й в обробниках. Якщо ми викинемо виключення(exception) за допомогою `throw` в обробнику (`.then`), то проміс вважатиметься відхиленим, і управління перейде до найближчого обробника помилок.
70
70
71
71
Приклад:
72
72
@@ -200,6 +200,6 @@ new Promise(function() {
200
200
201
201
-`.catch` перехоплює усі види помилок в промісах: будь то виклик `reject()` або помилка, кинута в обробнику за допомогою `throw`.
202
202
-`.then` так само виловлює помилки, якщо надати другий аргумент (який є обробником помилок).
203
-
- Необхідно розміщувати `.catch` там, де ми хочемо обробити помилки і знаємо, як це зробити. Обробник може проаналізувати помилку (можуть бути корисними користувацькі класи помилок) і прокинути її, якщо нічого не знає про неї (можливо, це програмна помилка).
203
+
- Необхідно розміщувати `.catch` там, де ми хочемо обробити помилки і знаємо, як це зробити. Обробник може проаналізувати помилку (можуть бути корисними класи помилок, створені нами спеціально під конкретну помилку) і прокинути її, якщо нічого не знає про неї (можливо, це програмна помилка).
204
204
- Можна і зовсім не використовувати `.catch`, якщо немає нормального способу відновитися після помилки.
205
205
- У будь-якому випадку нам слід використовувати обробник події `unhandledrejection` (для браузерів і аналог для іншого оточення), щоб відстежувати необроблені помилки і інформувати про них користувача (і, можливо, наш сервер), завдяки чому наш застосунок ніколи не буде "просто помирати".
0 commit comments