
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

Vladimir
23.08.2016
19:50:08
ну да

Google

Nikita
23.08.2016
19:50:24

hamper ?
23.08.2016
19:51:32

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

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

hamper ?
23.08.2016
19:52:37

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

Andrey
23.08.2016
19:53:10

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

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

hamper ?
23.08.2016
19:59:35

Nikita
23.08.2016
19:59:59

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

hamper ?
23.08.2016
20:00:30

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

Nikita
23.08.2016
20:00:51

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

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

Google

Vladimir
23.08.2016
20:05:06
Не использую почти ничего из библиотек, только клиенты, драйвера, парсеры форматов, etc
> а еще доками. redux 2 месяца доками покрывали. А там 100 строк всего

Nikita
23.08.2016
20:05:21

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

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

Nikita
23.08.2016
20:08:18

Evgeny
23.08.2016
20:08:25

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