Сап, анон. Пытаюсь вкатиться в этот ваш новомодный ES6. Нихуя не понимаю с промисами. Стрелочные функции - хуета, а это что за зверь? Всю жизнь работал с коллбэками.Сейчас пытаюсь написать свою реализацию промисов, чтобы и с .then, и цепочкой, и на сиськи, но путаюсь в том, что должен возвращать этот промис.Это объект. Класса промис. Который имеет состояние, получает коллбэк и обрабатывает его. Получая коллбэк - дёргаем метод .then и, если аргумент у then пустой - возвращаем результат этого коллбэка, а если нет - вызываем промис с этим же коллбэком (что?). В итоге моя "самая простая реализация" насчитывает уже 60+ строк.Есть, блеать, где-нибудь блочная схема как эта хуита работает? Спецификацию PromisesA+ читал, но не понял.С меня няшные обойки.
Бамп
>>139946928 (OP)Ты хуй.
>>139946928 (OP)а все от недостатка образования.напиши на плюсах сначала, потом на js перепишешь.
Охуеть ты тупой. Хотя я рад, что погромисты с каждым днем становятся все более днищной профессией, меньше платить вам приходится УЖЕ)))).
>>139947529>>139947483>>139947710Послышался голос со стороны менеждеров и продавцов-кассиров.
Стрелочные функции - это тот же .bind().Насчет написания промисов не помогу, я их только использовал, не особенно заморачиваясь. Да и вообще у нас на проекте только es5, печаль.
>>139948141Жаль. Дык я тоже только использовал, но тимлид сказал, что перед тем, как что-то юзать - надо разобраться как оно работает. Сижу теперь, эти промисы ковыряю. Нахер оно надо, когда уже await/async на подходе - хз.А по опыту ты кто? Мид, июнь?
>>139947821Даже это лучше чем быть вебмакаком. Такие вопросы задают на stackoverflow, ебанат, хотя что взять с мартышки...
>>139948408Только июнь. Полгода даже не работаю еще.
>>139948607Голос со стороны байтоебов?
ОП, покажи свою реализацию в 60 строк. Интересно даже стало.А вообще, промисы - годная вещь
>>139948607На stackoverflow уже ничего давно не задают. Почитай об их репутации. Нет, если ты, конечно, хочешь поучавствовать в клоунаде, когда твой вопрос закрывают с плашкой "Не по теме", падает десяток комментов "Лол, это же ОЧЕВИДНО" и ни одного ответа, а, спустя пару дней, вновь открывают, приходят 1.5 реальных специалиста, проводят школию хуем по губам и говорят, что эта проблема уже висит в issues библиотеки и пока не решена, то да - иди на стак.
>>139946928 (OP)>Который имеет состояние, получает коллбэк и обрабатывает его.Он получает операцию, состояние которой будет хранить и идти по цепочке, опираясь на результат работы этой операции>Получая коллбэк - дёргаем метод .then и, если аргумент у then пустой - возвращаем результат этого коллбэка, а если нет - вызываем промис с этим же коллбэком (что?).Коллбэков здесь не существует, метод .then срабатывает если промис ранее вернул true или значение
>>139948799С 60 ошибся, на 40. Хз, как дальше рекурсивный .then делатьhttps://jsfiddle.net/ngx7d9jk/1/
>>139949017http://pastebin.com/Y432e4a8 так?В чём отличие простоvar a = promise(cb);отvar a = promise(cb).then(() => {});?
>>139947821Не знал, что зп тебе платят продавцы-кассиры, тупой холоп. Соболезную твоему днищеслучаю.
>>139951428Может ты и москаль ещё?
Bump
Лол. Всегда умиляет, что на любой вопрос сразу выскакивает пяток говноедов с криками "Лол, это жы ЛИХКО" или "Ну ты тупооой", а как предложишь показать свой лвл - сразу убегают и сливаются./Суть анонимных борд
>>139946928 (OP)Promise - это просто асинхронная монада поверх Either, а then лифтит функцию в монаду. ну и bind вполне понятный.
>>139960731Дядя, а это правда нужно во Frond-End? Зачем мне писать свою реализацию промисов, если можно использовать уже готовую в ES6 или подключить Bluebird если очень хочется?Алсо почитаю в этом направлении, спасибо.
Монада — это абстракция линейной цепочки связанных вычислений. Её основное назначение — инкапсуляция функций с побочным эффектом от чистых функций, а точнее их выполнений от вычислений.Пиздец.
>>139961772не знаю зачем тебе писать свою реализацию. может быть для того чтобы понимать что происходит, когда ты делаешь async.
>>139962096Тимлид заставил. Говорит, что это базовые знания JS и любой должен уметь написать свою реализацию промисов, чтобы понимать как замыкания и контекст работают. Спросил у пары коллег-мидов на эту тему - сбежали в ужасе "Нееее... это не знаю...". Хз короче. Поэтому копаю и пытаюсь понять. Думаю полезно будет.
>>139961772Весь объектив - одна огромная встроенная бленда? омг.
>>139962323читал?https://github.com/then/promise/blob/master/src/core.js
>>139962559По-сути - да. Наши взяли ту же систему для Индустара 61 ЛЗ. Довольно резкий макрик вышел, да и линза защищена самой конструкцией.>>139962732Нет, блубёрдовские исходники смотрел, но у них сложнее. Спасибо, анон. Сейчас почитаю.
>>139949594В первом случае переменная 'а' просто хранит onReject/onFullfield, во втором выполнит функцию в .then() если cb выполнится успешно