@nodejs_ru

Страница 151 из 2748
Nikita
23.08.2016
19:45:25
чем конкретно?

тесты Promise/A+ проходят?

Vladimir
23.08.2016
19:46:02
сходу не воспроизведу, edge кейс связанный с чейнингом

блюберд может запускать колбэки в неправильном порядке в определенных кейсах

Google
Данила
23.08.2016
19:46:43
ок, спасибо. пытаюсь просто понять как babel и ему подобные компилируют подобные вещи в es5

Nikita
23.08.2016
19:46:48
кароче, в ноде ваще никаких проблем от использования bluebird. Только плюсы.

Vladimir
23.08.2016
19:47:16
если ты не планируешь переходить на нативный async await никогда, то можно что хочешь делать

Nikita
23.08.2016
19:47:22
я бы посмотрел на кейсы. Вообще не знаю, где в спеке последовательное выполнение промисов может быть.

Vladimir
23.08.2016
19:47:42
ну promise.then(fn1); promise.then(fn2)

Nikita
23.08.2016
19:47:47
global.Promise = require('bluebird') и нативные async/await

Vladimir
23.08.2016
19:47:47
fn1 -> fn2

я про async await

async await все равно будет нативный промис давать

Nikita
23.08.2016
19:49:43
const promise = Promise.resolve(123); promise.then(console.log.bind(console, 1)); promise.then(console.log.bind(console, 2));

ты про такой код?

hamper ?
23.08.2016
19:50:01
самое эффективное под ноду - самое простое. Гугли bluebird.coroutine. yield на await меняешь, вот так оно и выглядит
я для корутин обычно co пользуюсь, нафиг этот блюбед жирноват он как то ))

Vladimir
23.08.2016
19:50:08
ну да

Google
Nikita
23.08.2016
19:50:24
я для корутин обычно co пользуюсь, нафиг этот блюбед жирноват он как то ))
я прям тут не раз уже про это спорил) смотри на бенчмарки

hamper ?
23.08.2016
19:51:32
global.Promise = require('bluebird') и нативные async/await
а чем нативные промисы плохи?

Nikita
23.08.2016
19:51:39
ну да
и спека говорит что сначала 1, а потом 2 должен выполниться?

а чем нативные промисы плохи?
тормознутые, нет методов для коллекций и прочих плюшек

Vladimir
23.08.2016
19:52:01
думаю да)

hamper ?
23.08.2016
19:52:37
тормознутые, нет методов для коллекций и прочих плюшек
хм... вроде ж в 6 ноде что то там со скоростью промисов правили... надо бы побенчмаркать как нибудь

Nikita
23.08.2016
19:53:07
я запускал) BB впереди планеты всей)

Evgeny
23.08.2016
19:53:21
блюберд может запускать колбэки в неправильном порядке в определенных кейсах
он это делает осознанно для того, например, чтобы можно было делать рекурсию на промисах

Vladimir
23.08.2016
19:53:39
но это противоречи спеке

Evgeny
23.08.2016
19:53:55
увы

Vladimir
23.08.2016
19:54:08
мысль в том, что bluebird это просто либа, которая не ставит цель соответствовать спеке

Nikita
23.08.2016
19:54:10
даже если это все так, я не понимаю в каких случаях это может быть проблемой) Ты от промисов не ждешь синхронного выполнения.

Felix
23.08.2016
19:54:15
а чем нативные промисы плохи?
медленнее, чем блюбирд

Vladimir
23.08.2016
19:54:22
сколько таких мелочей - кто знает

Evgeny
23.08.2016
19:54:24
и неудобны

Nikita
23.08.2016
19:54:27
а в том же блюберде есть методы для последовательного резолвинга там, где это нужно

hamper ?
23.08.2016
19:55:02
медленнее, чем блюбирд
хм... я на нативных всегда писал с их появления... надо будет пощупать блюбердные

Vladimir
23.08.2016
19:55:18
в общем с таким же успехом можно использовать и не промисы вообще

Evgeny
23.08.2016
19:55:55
ну да, коллбеки например - технология проверенная временем

Google
Nikita
23.08.2016
19:56:19
// bluebird User.fetchAll().map((user) => { console.log(user); }); // native User.fetchAll().then((users) => { return users.map((user) => { console.log(user); }); }) // bluebird User.fetchAll().map((user) => { console.log(user); }, { concurrency: 1 }); // native // сосницкий

вот пример)

hamper ?
23.08.2016
19:56:27
с колбеками код выглядит страшно когда надо штук 40 последовательно выполнить ))

Vladimir
23.08.2016
19:56:31
с async await это не нужно

без async await можно взять либу с функциями, работающими с любыми соответствующими стандарту промисами

Nikita
23.08.2016
19:57:48
async/await не избавляют тебя от необходимости выполнять несколько промисов асинхронно, а не последовательно

то есть Promise.props, Promse.map, etc.

Vladimir
23.08.2016
19:58:09
для этого есть Promise.all

hamper ?
23.08.2016
19:58:37
для этого есть Promise.all
опередил )) только начал писать

Nikita
23.08.2016
19:58:45
у меня нет слов))

ты можешь поверх Promise.all написать Promise.props. Но для Promise.map прямо помучаться прийдется)

hamper ?
23.08.2016
19:59:35
то есть Promise.props, Promse.map, etc.
да ну нафиг такое, лучше уж нативный синтаксис плюс async/await или какой нибудь co вместо них...

Nikita
23.08.2016
19:59:59
да ну нафиг такое, лучше уж нативный синтаксис плюс async/await или какой нибудь co вместо них...
еще раз. async/await не избавляют тебя от необходимости работы с коллекциями

Vladimir
23.08.2016
20:00:27
да ладно, getPromise().then(arr => Promise.all(arr.map(fn)))

hamper ?
23.08.2016
20:00:30
еще раз. async/await не избавляют тебя от необходимости работы с коллекциями
для набора промисов мне всегда Promise.all хватало или ты о чем?

Vladimir
23.08.2016
20:00:49
для работы с коллекциями есть for of, forEach, etc

Vladimir
23.08.2016
20:01:01
ну для этого есть хэлпер

Nikita
23.08.2016
20:01:27
мы тут, или в реакт чатике, поднимали этот вопрос. Нет lodash для промисов. Будет - поговорим

для браузера прям очень неплохо было бы такой либы

Google
Vladimir
23.08.2016
20:02:13
вообще-то можно и самому написать код, если он нужен

hamper ?
23.08.2016
20:02:19
а я перестал lodash примерно год назад пользоваться, все что мне в нем было нужно уже нативно есть

Nikita
23.08.2016
20:02:35
для работы с коллекциями есть for of, forEach, etc
и тебе результат filter хочется дальше в коллекцию промисов смапить. Прыгать вокруг них с Promise.all прям вообще не удобно

hamper ?
23.08.2016
20:02:44
или можно написать коротким кусочком кода

Nikita
23.08.2016
20:02:52
или взять блюберд?))

Vladimir
23.08.2016
20:03:12
только он не соответствует стандарту. для меня это важно

Nikita
23.08.2016
20:03:12
и потом тестами покрывать это все. А сроки - да кому они нужны?)

Vladimir
23.08.2016
20:03:19
и vendor lock-in

так можно взять либу которая расширяет Array

hamper ?
23.08.2016
20:03:38
ну покрыть тестами код из 5 строчек не долго...

Admin
ERROR: S client not available

Nikita
23.08.2016
20:03:40
эм, это абсурд немного)

стек свой опишешь вкратце?

Vladimir
23.08.2016
20:03:48
но чет никто не делает так

всмысле - стек?

Nikita
23.08.2016
20:03:55
я тебе 25 venor-lockов перечислю

ну что ты используешь в работе

библиотеки/фреймворки и тд

hamper ?
23.08.2016
20:04:41
зато если в проект придет новый разработчик ему не надо будет разбираться в интерфейсах каждый либы он просто увидит что эта вот всего лишь маленький метод

Nikita
23.08.2016
20:04:55
ну покрыть тестами код из 5 строчек не долго...
а еще доками. redux 2 месяца доками покрывали. А там 100 строк всего

Google
Vladimir
23.08.2016
20:05:06
Не использую почти ничего из библиотек, только клиенты, драйвера, парсеры форматов, etc

> а еще доками. redux 2 месяца доками покрывали. А там 100 строк всего

Vladimir
23.08.2016
20:05:48
бд

Nikita
23.08.2016
20:05:51
какой?

Vladimir
23.08.2016
20:05:57
разным

hamper ?
23.08.2016
20:06:02
ну уж пятистрочники можно и не документировать... максимум в jsdoc краткую пометочку сделать

Nikita
23.08.2016
20:06:18
то есть на sql99 в 2016 году пишешь?

Vladimir
23.08.2016
20:06:23
нет

в общем не вижу смысла брать нестандартную вещь, когда можно использовать стандартную нативную

KlonD90
23.08.2016
20:07:02
а кто не пишет на sql99?

Nikita
23.08.2016
20:07:02
ну уж пятистрочники можно и не документировать... максимум в jsdoc краткую пометочку сделать
с таким подходом у тебя будет куча таких пятистрочников, вместо пары хороших либ. Которые нормальный разработчик скорее всего знает, или изучит

hamper ?
23.08.2016
20:07:46
KlonD90
23.08.2016
20:07:59
Может у вас какой-то альтернтивный SQL или на каждый запрос OVER нужен? мне OVER ну понадобился при сложной статистике в остальном ну хз SQL99 вполне актуальный стандарт

Vladimir
23.08.2016
20:08:03
тем более что для async await не нужно почти ничего от промисов

Evgeny
23.08.2016
20:08:13
с таким подходом у тебя будет куча таких пятистрочников, вместо пары хороших либ. Которые нормальный разработчик скорее всего знает, или изучит
А это уже вендор локин для девелопера. Кому он будет нужен на собеседовании со своим набором 5строчников?

Nikita
23.08.2016
20:08:18
в общем не вижу смысла брать нестандартную вещь, когда можно использовать стандартную нативную
есть xcode, люди ставят AppCode. Есть terminal, люди ставят iterm2. Есть bash, а люди ставят zsh/fish/etc. Я это к чему - стандартное !== хорошее или полностью удовлетворяющее твоим требованиям

Vladimir
23.08.2016
20:08:40
> @NordLuf А это уже вендор локин для девелопера. Кому он будет нужен на собеседовании сосвоим набором 5строчников? нормальным, адекватным людям

Nikita
23.08.2016
20:08:49
другое дело, если нативные промисы тебя полностью устраивают. Они меня в браузере устраивают частично. Но в ноде - это кащунство, мое ИМХО)

Vladimir
23.08.2016
20:08:57
а не тем кому нужно чтобы ты знал mongoose прям обязательно

и еще 500 говнолиб с npm

Страница 151 из 2748