Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #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/, но "переварить" не могу этот текст
Ответить с цитированием
  #2 (permalink)  
Старый 23.07.2016, 15:08
Аспирант
Отправить личное сообщение для innowed Посмотреть профиль Найти все сообщения от innowed
 
Регистрация: 27.03.2015
Сообщений: 78

Сообщение от Rise Посмотреть сообщение
innowed, здесь в Учебнике не смотрел или ты не знаешь о нем?
это первое место, где я смотрел
Ответить с цитированием
  #3 (permalink)  
Старый 24.07.2016, 12:22
Профессор
Отправить личное сообщение для Bond Посмотреть профиль Найти все сообщения от Bond
 
Регистрация: 16.06.2013
Сообщений: 172

innowed,
Наберите в поиске ютуба Основы ES6 #15.1: Знакомство с обещаниями - там у него три видоса есть про обещания. Вроде толково объясняет что и как.
Ответить с цитированием
  #4 (permalink)  
Старый 24.07.2016, 13:21
Аспирант
Отправить личное сообщение для innowed Посмотреть профиль Найти все сообщения от innowed
 
Регистрация: 27.03.2015
Сообщений: 78

Сообщение от Bond Посмотреть сообщение
innowed,
Наберите в поиске ютуба Основы ES6 #15.1: Знакомство с обещаниями - там у него три видоса есть про обещания. Вроде толково объясняет что и как.
давно смотрел эти уроки, там рассказано как пользоваться, а за счёт чего работает, я суть не смог выловить
Ответить с цитированием
  #5 (permalink)  
Старый 24.07.2016, 14:54
Аватар для vadim5june
Студент
Отправить личное сообщение для vadim5june Посмотреть профиль Найти все сообщения от vadim5june
 
Регистрация: 30.04.2012
Сообщений: 1,113

Насколько я понял в then мы как раз и определяем resolve,а в catch -reject.
Ответить с цитированием
  #6 (permalink)  
Старый 24.07.2016, 19:12
Аспирант
Отправить личное сообщение для innowed Посмотреть профиль Найти все сообщения от innowed
 
Регистрация: 27.03.2015
Сообщений: 78

короч странно, за прошедшие несколько дней я видел кучу всякого Г, но банальной реализации промиса тупо нету. Более менее вариант http://www.mattgreer.org/articles/pr...wicked-detail/ да и то на общем фоне уже подгорает у меня
Ответить с цитированием
  #7 (permalink)  
Старый 24.07.2016, 20:44
Аватар для vadim5june
Студент
Отправить личное сообщение для vadim5june Посмотреть профиль Найти все сообщения от vadim5june
 
Регистрация: 30.04.2012
Сообщений: 1,113

Сообщение от innowed
о банальной реализации промиса тупо нету.
Он в браузерах нативным способом же реализован
Ответить с цитированием
  #8 (permalink)  
Старый 24.07.2016, 21:00
Аспирант
Отправить личное сообщение для innowed Посмотреть профиль Найти все сообщения от innowed
 
Регистрация: 27.03.2015
Сообщений: 78

Сообщение от vadim5june Посмотреть сообщение
Он в браузерах нативным способом же реализован
да
Ответить с цитированием
  #9 (permalink)  
Старый 24.07.2016, 21:06
Аватар для vadim5june
Студент
Отправить личное сообщение для vadim5june Посмотреть профиль Найти все сообщения от vadim5june
 
Регистрация: 30.04.2012
Сообщений: 1,113

Вот этот пример работает, все более менее понятно https://developer.mozilla.org/ru/doc...bjects/Promise
Ответить с цитированием
  #10 (permalink)  
Старый 25.07.2016, 08:44
Аспирант
Отправить личное сообщение для innowed Посмотреть профиль Найти все сообщения от innowed
 
Регистрация: 27.03.2015
Сообщений: 78

Сообщение от vadim5june Посмотреть сообщение
Вот этот пример работает, все более менее понятно https://developer.mozilla.org/ru/doc...bjects/Promise
у меня этот пример даже не запустился даже)

Вообщем, сейчас непонятно, как промис решает, что нужно выполнить - resolve или reject. Неужели тупо через try/catch
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Задачка на понимание ООП Ivan_Ivanoff_24 Общие вопросы Javascript 18 16.03.2015 12:37
Оператор && и его не понимание volkovics Общие вопросы Javascript 9 24.05.2012 00:15
Помогите с понимание кода ПОЖАЛУЙСТА. 0931454574 jQuery 8 18.05.2011 19:55
406 ошибка. Не понимание windows 1251 nikinfo AJAX и COMET 5 27.03.2009 22:54