JavaScript объект Promise
Описание объекта Promise
Объект Promise (обещание) представляет из себя специальный объект, предназначенный для планирования работы над значением, которое еще не было вычислено (завершение или сбой асинхронной операции). Объект Promise представляет из себя абстракцию для управления взаимодействиями с асинхронными API.
Объект Promise может находиться в следующих состояниях:
Начальное состояние любого объекта Promise - pending (ожидание). Если операция завершена успешно, то объект Promise изменяет свое состояние на fulfilled (выполнено), в том случае если операция завершена ошибкой, то объект Promise изменяет свое состояние на rejected (отклонено).
Еще один термин settled (решенный) используется для описания состояния объекта Promise, который изменил свое состояние на fulfilled (выполнено), или rejected (отклонено).
Синтаксис объекта Promise
let promise = newPromise( executor ); let executor = function( resolve, reject ) { } executor - Function
Значение параметра
Параметр | Описание |
---|---|
executor | Представляет из себя объект функции, который принимает два аргумента: resolve и reject. Аргументы представляют из себя функции, которые могут быть вызваны по завершению операции, первый аргумент вызывает успешное выполнение обещания, а второй отклоняет его. |
Методы объекта Promise
Метод | Описание | Chrome | Firefox | Opera | Safari | IExplorer | Edge |
---|---|---|---|---|---|---|---|
all() | Метод возвращает объект Promise, который имеет состояние fulfilled (успешное выполнение) в том случае, когда все переданные объекты Promise в аргументе имеют состояние fulfilled (успешное выполнение), или когда аргумент не содержит объектов Promise. Метод возвращает объект Promise, который имеет состояние rejected (выполнение отклонено) в том случае, когда один из переданных объектов изменил своё состояние на rejected (выполнение отклонено). | 32.0 | 29.0 | 19.0 | 8.0 | Нет | Да |
catch() | Добавляет обработчик или обработчики, которые будут вызваны при изменении состояния объекта Promise на rejected (выполнение отклонено). | 32.0 | 29.0 | 19.0 | 8.0 | Нет | Да |
finally() | Добавляет обработчик, который будет вызван вне зависимости от того с каким результатом объект Promise был выполнен (rejected - выполнение отклонено, или fulfilled - успешное выполнение). | 63.0 | 58.0 | 50.0 | 11.1 | Нет | Нет |
race() | Метод возвращает объект Promise, который имеет состояние rejected (выполнение отклонено), или fulfilled (успешное выполнение). Результат выполнения зависит от того, с каким результатом завершается выполнение первого из переданных объектов Promise. | 32.0 | 29.0 | 19.0 | 8.0 | Нет | Да |
reject() | Метод возвращает объект Promise, который был отклонен по указанной причине (изменяет состояние объекта Promise на rejected - выполнение отклонено). | 32.0 | 29.0 | 19.0 | 8.0 | Нет | Да |
resolve() | Метод возвращает объект Promise, который был успешно выполнен с заданным значением (изменяет состояние объекта Promise на fulfilled - успешное выполнение). | 32.0 | 29.0 | 19.0 | 8.0 | Нет | Да |
then() | Добавляет обработчик, или обработчики, вызываемые когда объект Promise имеет состояние fulfilled (успешное выполнение), или rejected (выполнение отклонено). | 32.0 | 29.0 | 19.0 | 8.0 | Нет | Да |