Показать сообщение отдельно
  #1 (permalink)  
Старый 23.07.2016, 13:49
Аспирант
Отправить личное сообщение для innowed Посмотреть профиль Найти все сообщения от innowed
 
Регистрация: 27.03.2015
Сообщений: 78

Промисы (понимание, имплеметация)
Здравствуйте! Пытаясь понять вроде бы несложную тему промисов, заодно пробую самостоятельно реализовать минимальное API (then, catch), но некоторые затупы не могу преодолеть. Понял я вот что:
1) У промиса должно быть 3 состояния (pending, fulfilled, rejected)
2) У промиса есть 2 метода then() и catch()
3) При создании экземпляра промиса
var promise = new Promise(fuction(resolve, reject))

назначается состояние pending, а вот с вызовом resolve непонятно - нужно его сразу вызвать или сложить в массив (и когда его в этом случае вызывать)? И зачем Promise() принимает в аргументы функцию с аргументами, а не просто аргументы как метод then()?
4) С этим пунктом уже туго, но я так понимаю, что если у нас вызов функции сложился в массив, то аргументы вызова метода then() мы складываем в тот же массив, чтобы потом поочерёдно их вызывать?
5) Ну а тут реализация метода catch(), который получает управление, если не срабатывает resolve, но как это определить? Понятно, что ошибку через try/catch можно поймать, а применимо ли это вообще здесь?

Может есть какие-нибудь материалы по алгоритмы работы промисов? Я уже посещал https://promisesaplus.com/, но "переварить" не могу этот текст
Ответить с цитированием