Estoy jugando con redux-observable para disparar doscomportamiento. La primera acción se basó en la condición cuando es verdadera y la segunda acción debería activarse utilizando el rebote a los 500 segundos. Ambos observables se pueden ejecutar de forma paralela y no dependen unos de otros.
Hasta ahora, se me ocurrió lo siguiente que no es un trabajo.
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),
));
};
Respuestas
0 para la respuesta № 1intente utilizar combineLatest en lugar de forkjoin y force emita un valor inicial del operador .if
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),
));
};