Я как-то изо всех сил пытаюсь придумать мраморную диаграмму при использовании forkJoin
. Мой вывод как-то всегда говорит, что подписка пуста.
Псевдокод:
// epic
const epic = (action$) => action$.pipe(
ofType('SAVE'),
mergeMap(() => {
const requests = [
getJSON('/a'),
getJSON('/b'),
getJSON('/c'),
];
return forkJoin(
...requests
).pipe(
mergeMap(() => [
{ type: 'SAVE_DONE'},
{ type: 'LOAD'},
])
);
})
);
// mock
const dependencies = {
getJSON: url => cold('g', {
g: { url }
})
};
// input
hot('i', {
i: { type: 'SAVE' }
}
// output??
forkJoin идет параллельно, но на мраморной диаграмме это последовательно? ggg
? Потому что, если мы посмотрим на весь поток, это igggxy
, где x и y - действия SAVE_DONE
и LOAD
. Или я совершенно не понимаю этого?