Почему ActionsObservable в redux-observable являются горячими наблюдаемыми? - PullRequest
1 голос
/ 18 марта 2019

Почему 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); 

Был бы признателен, если кто-то может помочь.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...