У меня возникла проблема, когда у меня есть защищенный маршрут, подобранный ниже. Если критерии для доступа к защищенному маршруту не выполнены, пользователь перенаправляется на другую страницу. К сожалению, эффект все еще выполняется, что в данном случае является обещанием, которое не выполнится и покажет ошибку пользователю.
export const examplePageLoadEffect: Epic<AnyAction, IAppState> = (action$) =>
action$
.ofType(LOCATION_CHANGE)
.map((action: LocationChangeAction) => action.payload.pathname)
.filter((url) => /protected-path/.test(url))
.switchMap((url) => {
return Observable.fromPromise(fetchSomePromise())
.switchMap((promiseResponse) => Observable.of(
doSomethingWithPromise(promiseResponse)
))
.catch((err) => Observable.of(doSomethingWithError(err));
}
);
Есть ли способ обойти это так, что если защищенный маршрут перенаправляется на другой маршрут, это останавливается?
Спасибо.