Почему ActionsObservable in redux-observable являются горячими наблюдаемыми ?
Что должно произойти, если мы передадим холодные наблюдаемые для ActionsObservable?
Senario:
Создать поток действий из холодных наблюдаемых.Всякий раз, когда эпос «срабатывает» более одного раза, например.В случае 3 в следующем примере результаты 1 + N просто повторяют результат первого «огня».
Если используется createHotObservable, все будет работать, как ожидалось.Я изучал эту проблему целый день и обнаружил, что только в некоторых статьях рассматривается тот факт, что ActionsObservable являются горячими наблюдаемыми .
// pseudo code.
// Normally,the epic will return "SUCCESS" 2 frames after "START". If there's "CANCEL" within 2 frames after "START", the epic will return nothing
ts = new TestScheduler()
values = {
a: { type: 'START' },
b: { type: 'SUCCESS'},
c: { type: 'CANCEL' }
};
// case 1 "success"
let source = ActionsObservable.from(
ts.createColdObservable('-a-----', values)
);
ts.expectObservable(epic(source)).toBe('---b-', values);
// case 2 "cancel"
let source = ActionsObservable.from(
ts.createColdObservable('-ac-----', values)
);
ts.expectObservable(epic(source)).toBe('----', values);
// case 3 "success and cancel". Test fail '---b---b-' received!
let source = ActionsObservable.from(
ts.createColdObservable('-a---ac--', values)
);
ts.expectObservable(epic(source)).toBe('---b-----', values);
Был бы признателен, если кто-то может помочь.