tgoop.com/prog_way_blog/184
Last Update:
Что такое Promise?Promise
— это способ обработки асинхронного кода в JavaScript. Это нативный объект языка, у которого есть своё состояние и несколько методов для удобства работы с ним. Всё это нужно для того, чтобы удобно отслеживать статус выполнения асинхронной операции и, в конечном итоге, получить её результат.
Также отдельно стоит отметить, что промис является микрозадачей.
У Promise
есть несколько состояний:— pending
— ожидание — такое состояние будет у промиса в момент его создания и до того момента, как асинхронная операции не будет выполнена. После выполнения асинхронной операции, Promise
переходит следующие два состояния — fulfilled
или rejected
— fulfilled
— успех — операция выполнена успешно— rejected
— ошибка — если вдруг в цепочке промисов возникла ошибка
О какой цепочке речь? У Promise
есть три метода, которые позволяют создавать из обычного промиса целую цепочку и обрабатывать данные последовательно.— then
— метод, который принимает результат предыдущего промиса и возвращает новый результат— catch
— метод, который позволяет обработать ошибку операции — finally
— то, что будет выполнено всегда после цепочки промисов, вне зависимости от того завершился он с успехом или нет
Типичный вид промиса следующий:
new Promise((resolve, reject) => ...)
.then(...)
.then(...)
.catch(...)
.finally(...)
Обратите внимание на то, что эти методы вызываются цепочкой. Но никто и не запрещает сохранять промежуточный результат в переменную, если это необходимо:
const promise1 = new Promise((resolve, reject) => ...).then(...)
const promise2 = promise1.then(...)
promise2.catch(...).finally(...)
Также обратите внимание на то, что
callback
промиса принимает два аргумента — функции resolve
и reject
.Они нужны для того, чтобы перевести
Promise
из состояния pending
в два других, причем reject
приведёт промис к состоянию rejected
и вызовет методы catch
, если они есть в цепочке, а resolve
либо переведёт нас к следующему в цепочки then
с текущим статусом, либо переведёт Promise
в состояние fulfilled
.На самом деле, рассказать в рамках поста эту тему подробно просто невозможно. Я бы не сказал, что эта тема сложная, она просто достаточно объёмная. Вдумчивое изучение позволит вам понять что такое
Promise
за пару часов.Очень советую статью о промисах на Доке для самостоятельного изучения.
Спасибо за прочтение, это важно для меня
#javascript #web #theory
BY progway — программирование, IT

Share with your friend now:
tgoop.com/prog_way_blog/184