
Alex
25.09.2016
12:30:45
если с DOM то можно использовать готовые какие-то левые компоненты, например react

Vadim
25.09.2016
12:31:32
И значит пересчета только лишь одного компонента не получится

Filipp
25.09.2016
12:31:57

Google

Alex
25.09.2016
12:32:27
вот например extension для vscode на cycle
https://github.com/whitecolor/vscode-taskmate/blob/08ceed490bb57ed5c1b101ca978555a596312fb8/src/extension.ts

Filipp
25.09.2016
12:32:43
То есть если поддерево представляет собой тот же объект, что и раньше, оно пропускается

Vadim
25.09.2016
12:34:29

Alex
25.09.2016
12:36:19
и лучше сразу готовиться писать на TypeScript если собираетесь использовать cycle
т.к. без типов долго не попишешь, более или мене сложнее что-то

Filipp
25.09.2016
13:37:46

Alex
25.09.2016
15:27:44
Или если combineLatest
ну если combineLatest сработал, а итоговое значение не отлично от предыдущего (бывает еже) уйдет в sink, тут уже будет зависить как быстро snabbdom брабатывать будет

Filipp
25.09.2016
15:34:21
Оно полностью совпадает с предыдущим, когда обновление произошло в другом поддереве
Если у тебя C = A.combineLatest(B)
То когда B эмитит, значение из A не меняется

Google

Filipp
25.09.2016
15:36:38
Снебдом видит это и не трогает поддерево A

Alex
25.09.2016
15:38:11
может быть что при combine(A, B) -> C изменениях в A или B, C не будет меняться)
т.е. он де-факт не должен будет менять DOM, но в sink уйдет, не частая ситуация

Filipp
25.09.2016
16:34:53
Это не тот случай, о котором был вопрос

Алексей
25.09.2016
21:22:04
https://github.com/caiogondim/pipeline.js

Дмитрий
26.09.2016
00:53:21
мне для такого пришлось писать свою обертку-пайплайн над ramda
унииверсальную, чтоб и так и так можно было передавать, в зависимости от ситуации

Alex
26.09.2016
14:35:37

Gregory
26.09.2016
16:02:44
Привет всем.
Прошу минуту вашего внимания.
Я хочу выступить на ReactiveConf и для этого мне нужно войти в тройку по количеству старов:
https://gist.github.com/A-gambit/1ded6bf07cf4a497fc6eeb3e082ac612
Конкуренция очень велика и каждый стар имеет значение.
Буду благодарен, если вы поможете мне в этом.
Спасибо за внимание!

Denis
26.09.2016
16:02:57
Друзья, давай поддержим Григория! У него 196 звёзд, а у его конкурентов 197 и 195. Каждый голос важен!

Дмитрий
26.09.2016
16:31:38
(...[a, b, c])?
Вся фишка в том, что это не известно заранее
У тебя просто прилетает в пайп значение, если это массив, то делаешь rest, если нет, то отправляешь в пайп
Возможно у меня просто какой-то узкий кейс, но так удобней составлять алгоритм на лету, просто собирая нужный массив
В sanctuary pipe например с массивом работает

Vasiliy
05.10.2016
10:50:46
кто использует rxjs5, помогите плз разобраться с оператором bufferToggle
хоть убей не понимаю как работает
сейчас опишу задачу:
есть tracks$: Observable объектов, у которых есть .size,
мне нужно накапливать их, пока совокупный размер буфера не достигнет размера N

Alex
05.10.2016
10:52:31
собирает элементы между событиями двух потоков
нарисовано ве

Google

Vasiliy
05.10.2016
10:53:01
да это я понимаю
openings, closings
я понял, это-то не сложно
ок, на реальном примере:
let total = 0;
const buffered$ = tracks$.bufferToggle(tracks$, track => {
total += track.size;
if (total > BUFFER_SIZE_BYTES) {
total = 0;
return // what?
}
return // what?
});

Alex
05.10.2016
10:53:39
bufferCount

Vasiliy
05.10.2016
10:54:01
мне нужен не count, а total size
+ можно ли тут обойтись без переменной total?

Alex
05.10.2016
10:54:34
bufferWhen

Vasiliy
05.10.2016
10:54:56
а там ф-ция без аргументов, в bufferWhen, не оч понятно как условие задать если мне track не приходит

Alex
05.10.2016
10:55:50
вообще window скорее тебе надо

Vasiliy
05.10.2016
10:55:55
оо
я забыл про window вообще

Alex
05.10.2016
10:56:01
если я правильно понял задачу

Vasiliy
05.10.2016
10:56:09
да, сек, посмотрю, спасибо

Alex
05.10.2016
10:56:47
но там не буфер а поток получается
или вообще обычный buffer нужно
в closingNotifier делаешь reduce(size)

Vasiliy
05.10.2016
11:03:18
tracks$.reduce((total, track) => total + track.size, 0)
мне нужно получить Observable, который будет эмитить, когда totalSize превысит MAX_BUFFER_SIZE,
он и будет переключателем для .buffer, такая идея?
я новичок, если что в rxjs (%

Alex
05.10.2016
11:04:22
можно как-то так сделать, а можно вообще просто с reduce
возращаешь из reduce {buffer, size}
когда буфер переваливает возвращаешь в size 0

Google

Alex
05.10.2016
11:06:31
пропускаешь накопленный только если size 0

Vasiliy
05.10.2016
11:06:44
супер, рабоатет

Alex
05.10.2016
11:06:48
и если педыдущее значение содержит size 0 начинаешь собирает новый буфер
по разному можно сделать

Vasiliy
05.10.2016
11:07:07
спасибо) я сделал как выше написал

Alex
05.10.2016
11:07:50
?

Vasiliy
05.10.2016
17:23:30
мб боян, но пока бесплатно https://egghead.io/courses/rxjs-subjects-and-multicasting-operators
сам только собираюсь сейчас посмотреть

Ҫѐҏӗѫӑ
05.10.2016
18:01:03
вроде ночью только выкатили. Андре недавно писал

Vasiliy
07.10.2016
09:11:39
посмотрел его, хороший, для начинающих как я – норм
хотя многое быстро забывается, тк не используешь каждый день – слишком много всего в rxjs, даже с учетом выпиленного

Ҫѐҏӗѫӑ
07.10.2016
11:19:34
факт

Darwin
09.10.2016
09:38:00
https://m.youtube.com/watch?v=R2FtMbb-nLs

Vadim
10.10.2016
17:14:46
Люди, не напомните оператор, который принимает несколько потоков, и срабатывает только если все они завершились?
Короче нужно прописать обработчик, который срабатывает когда завершились два ajax-запроса

andretshurotshka?❄️кде
10.10.2016
17:16:12
combineLatest ?

Filipp
10.10.2016
17:17:24
Похоже на то
Ну или Promise.all =)

Vadim
10.10.2016
17:20:55

Vasiliy
14.10.2016
12:33:26
начал раскуривать rxjs и много чего не понял внутри
например, что значит PartialObserver с таким странным определением:
export type PartialObserver<T> = NextObserver<T> | ErrorObserver<T> | CompletionObserver<T>;
где все эти 3 типа одинаковые ?
или

Google

Vasiliy
14.10.2016
12:34:58
это в Subscriber.ts: [$$rxSubscriber]() { return this; }
потом используется вот так в toSubscriber:
if (nextOrObserver[$$rxSubscriber]) {
return nextOrObserver[$$rxSubscriber]();
}
с виду кажется бесмысслицей
пойду в гиттер поспрашиваю к ним зачем это все)

Vadim
14.10.2016
12:39:10
А зачем вам погружаться во внутренности, которые имеют тенденцию меняться? Почему вам не достаточно просто знать API?
Вы хотите написать свой rxjs? Или просто таким образом осваиваете javascript?