Alex ZeroDub
может —harmony пугает ?
в прод такое запрещено пускать
Anonymous
ну вот и ответ =)
Vlad
Alex ZeroDub
кто мешает бабелить?
политика партии
Vlad
комунизм отменили в 1991
Андрей
когда у тебя getUserById(id) .then(user=> getUserData) .then(userData => { return changeUserdata(modes, userData) }) .then(()=> { next() }) то тут не до лаконичности )
Sergey
мне кажется или это хрень?
Андрей
какой смысл в чистых функциях на проектах где половину кода каждые пол года переписываешь ? :)
Андрей
это хрень
Vlad
вот так лаконично pipeP( getUserById, getUserData, changeUserdata(modes), () => { next(); } )(id)
Андрей
но в нашем уютном нодескрипте req res next это плюс а не минус )
Petro
Вопрос: есть async waterfall, в нем я вызываю функцию где делаю коннект к сокету, и регистрирую ивент data, мне нужно ждать и не продолжать waterfall до тех пор пока не сработает ивент, это реализовать реально?
Roman
ох не пошло очередной раз, ладно
Vlad
я за твою идею
Vlad
мб без сваггера
Sergey
но только чтобы не зависеть от всяких там сваггеров
Sergey
что за async waterfall?
Sergey
представляю, но ни разу не видел
Vlad
наверняка какая-то либа из 2012
Mykola
http://caolan.github.io/async/docs.html#waterfall
Mykola
обалденная либа в свое время была
Mykola
аргумент
Sergey
это даже выглядит страшно
Roman
мб без сваггера
проблема в том, что у меня есть ручка http://test.com?param1=123 у которой еще допустим кука с юзером, как мне получить функцию с аргументами (param1, user)
Mykola
это даже выглядит страшно
оно на заре колбеков было. Когда io.js не родился. Вот тогда ей и спасались
Roman
нужен separation of concerns
Pavel
мне кажется не знать про асинк и писать на ноде это оч странно
Sergey
ну сейчас промисы есть и генераторы
Vlad
обалденная либа в свое время была
в своё время да, но не сейчас
Андрей
посаны. а хтонить юзил function-tree ? выглядит прикольно . Я для себя такой почти велосипед уже давно завелосипедил. Охото узнать есть ли аналоги, и куда идёт развитие если оно идёт ? :)
Vlad
ну сейчас промисы есть и генераторы
генераторы не про асинк ведь
Андрей
https://habrahabr.ru/post/309930/
Андрей
выглядит это брутально, но работает норм (про function-tree)
Vlad
теперь это часть http://www.cerebraljs.com/
Roman
речь как бы не о том как писать fp в js, это очевидно, речь о работе с http
Vlad
co()
это временное решение пока асинк/авейтов не было
Mykola
и опять же async был до co()
Vlad
в общем это былое
Mykola
тоже )
Mykola
как то проскочило мимо меня
Sergey
вернемся к http и fp
Mykola
а по вопросу реально. ты ж можешь явно cb вызвать когда тебе нужно, чтоб следующий в ватерфоле колбек сработал
Roman
возьмем экспресс, который по сути отражает дизайн node http - пришел запрос, сформировалась огромная какашка req, в которой есть все, что может понадобиться и она везде пробрасывается
Roman
дальше все пишут роутинг, типо путь /test => иди в такую-то ручку, а экспресс даст тебе req и еще пару плюшек
Roman
в итоге бизнес логика лежит в этом роуте а из аргументов у него мутный req и супер сайд эффектный res
Roman
а бизнес логика должны быть выражены только функцией: конкретные аргументы на вход, значение на выход
Roman
так вот кто-то должен вытащить из req все что нужно именно это ручке и отправить через res то что она вернет
Андрей
а кто мешает вынести свою бизнеслогику в отдельные модули?
Андрей
и при помощи pub-sub доставлять своему модулю данные и ждать от него ответ
Roman
pub sub тут вообще не при чем. выделять конечно можно, то есть у тебя внутри каждой ручки будет ручной вызов функции, где ты сам вытаскиваешь из req то, что нужно
Roman
но это может быть автоматически
Roman
потом ты опять же руками должен получить результат и отправить его в res, указан соотв-ий content-type например
Roman
а свегер все это описывает декларативно
Evgeny
loopback
Evgeny
Вы изобретаете loopback
Андрей
я со свагером не знаком плотно. я только писал парсер из свагеровского json в html. Сорян-не теме . :)
Roman
loopback
а что лупбек делает если я хочу внутри бизнес логики куку посадить
Roman
лупбек поддерживает експресс, я че-то ниче хорошего от них не жду
Roman
strongloop точней
Roman
я со свагером не знаком плотно. я только писал парсер из свагеровского json в html. Сорян-не теме . :)
он описывает http api, что и в каком формате приходит и что и в каком формате должно уходить
Roman
@NordLuf есть какие-ть примеры ручек на лупбек? доки у них не айхти
Evgeny
ожидаемо
Roman
ну или на словах опиши, если ты уверен что лупбек решает проблему, хотелось бы понять каким образом
Evgeny
работа с апи, работа с данными описывается в моделях и эндпоинтах. к ним можно прикрутить кастомную логику. можно даже сделать получние на вход не всего, но только нудных данных
Roman
а как выглядит интерфейс ендпоинта
Roman
пока то что ты описал это просто потому что они используют свегер
Дима
По поводу waterfall — это тупо монада Either в чистом виде