Je joue avec redux-observable pour déclencher deuxactes. La première action était basée sur la condition vraie et la deuxième action devait être déclenchée avec rebond à 500 secondes. Les deux observables peuvent être exécutés en parallèle et ne dépendent pas l'un de l'autre.
Jusqu'ici, je suis arrivé avec ce qui suit qui n'est pas un travail.
export const updateContent = (content$, { getState }) => {
return content$.ofType(actionTypes.REQ_CHANGE_EDIT)
.flatMap(action =>
Observable.forkJoin(
Observable.if(() => isChanged(getState()),
Observable.of(({ type: actionTypes.CHANGE_EDIT, changed: true }))),
Observable.of({ type: actionTypes.CACHE_CONTENT, isCached: false }).debounceTime(500),
));
};
Réponses:
0 pour la réponse № 1essayez d'utiliser combineLatest au lieu de forkjoin et forcez une valeur initiale émise par l'opérateur
export const updateContent = (content$, { getState }) => {
return content$.ofType(actionTypes.REQ_CHANGE_EDIT)
.flatMap(action =>
Observable.combineLatest(
Observable.if(() => isChanged(getState()),
Observable.of(({ type: actionTypes.CHANGE_EDIT, changed: true }))).startWith(null),
Observable.of({ type: actionTypes.CACHE_CONTENT, isCached: false }).debounceTime(500),
));
};