Объект Promise
представляет окончательное завершение (или сбой) асинхронной операции и ее результирующее значение.
Состав
Обещания имеют базовый план
new Promise( /* executor */ function(resolve, reject) { ... } );
Функция, переданная с аргументами resolve
и reject
. executor
function выполняется немедленно реализацией Promise, передавая функции resolve
и reject
(исполнитель вызывается до того, как конструктор Promise
даже вернет созданный объект). Функции resolve
и reject
при вызове разрешают или отклоняют обещание соответственно. Исполнитель обычно инициирует некоторую асинхронную работу, а затем, после ее завершения, либо вызывает функцию resolve
для выполнения обещания, либо отклоняет его, если произошла ошибка. Если в функции исполнителя возникает ошибка, обещание отклоняется. Возвращаемое значение исполнителя игнорируется.
Пример
Обещания не возвращают значения сразу. Он ждет успеха или неудачи, а затем возвращается соответственно. Это позволяет асинхронным методам возвращать значения, подобные синхронным. Вместо того, чтобы сразу возвращать значения, асинхронные методы предоставляют обещание вернуть значение.
Цепочка обещаний
Идея цепочки обещаний заключается в том, что результат передается через цепочку .then
обработчиков.
Значение возвращается следующему обработчику .then
. Из вывода можно сделать вывод, что оператор return
передает значение следующему обработчику .then
.
Заключение
Это была лишь основная суть обещаний JavaScript. Обещания могут сделать намного больше, если их использовать правильно и в нужном месте.
Надеюсь, вам понравилось читать. Подключите меня к Linkedin