@zlodiak

Почему синхронный forkJoin работает некорректно?

Помогите пожалуйста понять как forkJoin работает с двумя синхронными потоками. Пример:
var s = Rx.Observable.of(1, 2, 3);
var s1 = Rx.Observable.of(1, 2, 3);

var sub = Rx.Observable.forkJoin(s, s1)

sub.subscribe(x => console.log(x));


В этом пример странно то, что в консоль выводится два значения, причём непонятно каким образом сформированные:
0:3
1:3


Я вижу правильное выполнение так:
  1. после старта мгновенно генерируются значения из первого потока. В результате первый поток выдаёт значение 3
  2. затем второй поток начинает выдавать значения. И хотя он тоже это делает мгновенно, но на этот момент уже существует тройка из первого потока. Поэтому консоль должна вывести: 3:1,
  3. а остальные пары игнорировать так как тройка из первого потока не меняется
  • Вопрос задан
  • 58 просмотров
Решения вопроса 1
0xD34F
@0xD34F Куратор тега JavaScript
в консоль выводится два значения, причём непонятно каким образом сформированные

Я вижу правильное выполнение так: <бла-бла-бла>

Вместо того, чтобы фантазировать, как оно там должно быть - следует читать документацию.

Открываем, читаем:

When all observables complete, emit the last emitted value from each.

Последнее значение из каждого. Ну и всё.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы