Sanu0074
@Sanu0074

Как более оптимально обработать ошибку получения сущности в state NGXS?

Допустим есть некий state:
@State<Some>({
  name: "some",
})
@Injectable()
export class SomeState {

  constructor(
    private readonly someService: SomeService) {
  }

  @Action(GetSomeAction)
  getPage(ctx: StateContext<Some>, action: GetSomeAction) {
    return this.someService.getSome(action.params).pipe(
      catchError((error: HttpErrorResponse) => {
       // так делать не хочется
        ctx.dispatch(new SomeErrorAction(error));
        return throwError(error);
      }),
      tap(res => {
         // set state
      })
    );
  }

}


Допустим есть такая подписка на сущность:
@Select(SomeState) private readonly some$: Observable<Some>;

some$.subscribe(some=> this.onSomeLoad(some), err => // тут хочется обработать ошибку, но это не работает);


Так вот, проблема в том что не ясно как в рамках одного state обрабатывать ошибку, и можно ли так? Для того чтобы не писать еще один state с ошибкой получения этой сущности и не делая специальный action для этого, который бросаем при ошибке получения объекта по http как в примере выше.
  • Вопрос задан
  • 28 просмотров
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы