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.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 () викликається при кожному натисканні на
Виконання обіцянки протоколюється за допомогою продовження p1.then. Це показує як синхронна частина методу відв'язана від асинхронного завершення обіцянки.
Даний приклад запускається при натисканні на кнопку. Для цього вам необхідний браузер, що підтримує Promise. При послідовних натиснення на кнопку з коротким інтервалом, ви можете побачити як різні обіцянки будуть виконані один за іншим.
Завантаження зображення за допомогою XHR
специфікації
Дякуємо! Будь ласка, перевірте свою папку "Вхідні" для підтвердження підписки.
Якщо ви раніше не підтверджували підписку на розсилку новин Mozilla, то вам, можливо, доведеться зробити це. Будь ласка, перевірте папку Вхідні або Спам в своїй поштовій скриньці, щоб подивитися, чи не настав від нас лист.
Приховати підписку на розсилку новин
Чому MDN виглядає інакше?
MDN змінюється, фокусуючись тільки на документуванні веб-технологій. Все той же відмінний контент залишиться тут; ми міняємо тільки візуальні елементи і навігацію, щоб допомогти вам швидше знаходити документацію по веб-технологіям.
Але не хвилюйтеся, MDN і Mozilla як і раніше разом. За фактом, ми оновлюємо тільки оформлення MDN, щоб відповідати новому лого і квітам Mozilla.
Прочитайте більше про редизайн в пості на нашому блозі. Дякуємо за використання MDN!
Приховати повідомлення про редизайн