Promise - javascript, mdn

Об'єкт Promise (обіцянку) використовується для відкладених і асинхронних обчислень. Promise може перебувати в трьох станах:

  • очікування (pending). початковий стан, не виконана і не відхилено.
  • виконано (fulfilled). операція завершена успішно.
  • відхилено (rejected). операція завершена з помилкою.

Інший термін, що описує стан заданий (settled). обіцянку виконано або відхилено, але не знаходиться в стані очікування.

executor Об'єкт функції з двома аргументами resolve і reject. Перший аргумент викликає успішне виконання обіцянки, другий відхиляє його. Ми можемо викликати ці функції по завершенні нашої операції.

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

При створенні обіцянку знаходиться в очікуванні (pending). а потім може стати виконано (fulfilled). повернувши отриманий результат (значення), або відхилено (rejected), повернувши причину відмови. У будь-якому з цих випадків викликається обробник, прикріплений до обіцянці методом then. Якщо в момент прикріплення обробника обіцянку вже стримано або порушено, він все одно буде виконано, тобто між виконанням обіцянки і прикріпленням обробника немає «стану гонки», як, наприклад, у випадку з подіями в DOM.

Так як методи Promise.prototype.then і Promise.prototype.catch самі повертають обіцянки, ви матимете змогу дзвонити ланцюжком, створюючи з'єднання.

Promise - javascript, mdn

Promise.length Значення властивості завжди дорівнює 1 (кількість аргументів конструктора). Promise.prototype Являє прототип для конструктора Promise.

Promise.all (iterable) Повертає обіцянку, яку виконається після виконання всіх обіцянок в переданому ітеріруемом аргументі. Promise.race (iterable) Повертає обіцянку, яку буде виконано або відхилено з результатом виконання першого виконаного або відхиленого ітеріруемого обіцянки. Promise.reject (reason) Повертає об'єкт Promise. який відхилений з вказаною причиною. Promise.resolve (value) Повертає об'єкт Promise. який виконаний з вказаним значенням. Якщо значення може бути продовжено (мається метод then), то повертається обіцянку буде "слідувати" продовження, виступаючи адаптером його стану; в іншому випадку буде повернуто очікування в виконаному стані.

прототип Promise

Promise.prototype.constructor Повертає функцію, яка створила прототип примірника. Це функція всіх обіцянок за замовчуванням.

Promise.prototype.catch (onRejected) Додає функцію зворотного виклику, для обробки відхилення обіцянки, яка повертає нову обіцянку виконане з переданим значенням, якщо вона викликана, або оригінальне значення resolve, якщо обіцянка виконана. Promise.prototype.then (onFulfilled, onRejected) Додає обробник виконання і відхилення обіцянки, і повертає нову обіцянку виконане зі значенням викликаного обробника, або оригінальне значення, якщо обіцянку не було оброблено (тобто якщо відповідний обробник onFulfilled або onRejected не є функцією ).

створення обіцянки

Даний невеликий приклад показує механізм роботи з Promise. Метод testPromise () викликається при кожному натисканні на