Якщо проміс буде відхилено, і немає обробників відхилення для виклику (обробник можна приєднати через будь-який з then(), catch() або finally()), тоді подія відхилення виявляється хостом. У браузері це призводить до події unhandledrejection. 25 липня 2024 р
тоді обробник, що означає відхилену обіцянку, тому елемент керування переходить до найближчого обробника помилок. Ось приклад: new Promise (( resolve , reject ) => { resolve ( "ok" ) ; } ) . then ( ( result ) => { throw new Error ( "Whoops!" ) ; // відхиляє обіцянку } ) .
Виконано: це завершений і успішний стан обіцянки. У результаті він повертає значення вирішення. Відхилено: як і стани "вирішено" або "виконано", стан "відхилено" вказує на невиконання обіцянки. Якщо проміс опиняється у стані відхилення, у результаті повертається значення помилки.
Помилка в ланцюжку обіцянок catch()” для обробки помилки. Приклад. Цей приклад демонструє ланцюжок промісів у JavaScript, де помилки в асинхронних операціях (наприклад, у «promise2») запобігають наступним «. then()” обробників від виконання, поки не буде перехоплено “. catch()” для обробки помилок.
Він вирішується, коли всі обіцянки в масиві вирішено, або відхилено, як тільки одне з них відхилено. Іншими словами, він або вирішує з масивом усіх вирішених значень, або відхиляє з єдиною помилкою. Якщо будь-яке з промісів у масиві відхилено, Обіцянка. все сама відкине.
Повернене значення Ця нова обіцянка завжди очікує на повернення, незалежно від статусу поточної обіцянки. Якщо викликається onRejected, повернута обіцянка буде вирішена на основі значення, що повертається цим викликом, або буде відхилено з викинутою помилкою цього виклику.
then() або . Слухачі catch() для вирішення або відхилення переходів ніколи не викликатимуться.Більшість коду, який використовує обіцянки, очікує, що вони будуть вирішені або відхилені в якийсь момент у майбутньому (ось чому проміси використовуються в першу чергу). Якщо ні, тоді цей код зазвичай ніколи не закінчує свою роботу.