Size: a a a

Angular - русскоговорящее сообщество

2020 February 18

S

Smooth Operator in Angular - русскоговорящее сообщество
в ангуляре есть ErrorHandler который ты можешь инжектить и подменять
источник

ST

Serhii Tihovskiy in Angular - русскоговорящее сообщество
Smooth Operator
и у всех них нет обработки ошибок?)
Там вопрос в том правильно ли идеологически в них сувать обработку на навигацию
источник

DB

Dilame 🎩 Bowzee ⠀⠀⠀ོ ⠀⠀ in Angular - русскоговорящее сообщество
Smooth Operator
и у всех них нет обработки ошибок?)
Ну пока ещё нет, я только проектирую ещё)
Но вообще конечно не хотелось бы дублировать логику в каждом subscribe
источник

AT

Alexey Tuychiev in Angular - русскоговорящее сообщество
В этом случае нет ничего плохого в дублировании кода imho
источник

DB

Dilame 🎩 Bowzee ⠀⠀⠀ོ ⠀⠀ in Angular - русскоговорящее сообщество
Serhii Tihovskiy
Можешь левую подписку сделать, ещё одного потребителя
RouterEventsSubsriber какой-то
Который будет ее ловить и навигейтить
Это cold observable, не прокатит
источник

S

Smooth Operator in Angular - русскоговорящее сообщество
Serhii Tihovskiy
Там вопрос в том правильно ли идеологически в них сувать обработку на навигацию
ошибки в любом случае надо обрабатывать
источник

ST

Serhii Tihovskiy in Angular - русскоговорящее сообщество
Dilame 🎩 Bowzee ⠀⠀⠀ོ ⠀⠀
Это cold observable, не прокатит
Тогда напиши ивент бас, куда эмить событие ROUTER_NAVIGATE_TO, которое его отловит и сделает навигацию по требованию
источник

S

Smooth Operator in Angular - русскоговорящее сообщество
не вижу ничего плохого если ошибка с NoIdError будет делать редирект на нужную страницу (если пользователь еще не там)
источник

ST

Serhii Tihovskiy in Angular - русскоговорящее сообщество
Serhii Tihovskiy
Тогда напиши ивент бас, куда эмить событие ROUTER_NAVIGATE_TO, которое его отловит и сделает навигацию по требованию
Правда такой обработчик ради одной ошибки так себе
источник

S

Smooth Operator in Angular - русскоговорящее сообщество
Dilame 🎩 Bowzee ⠀⠀⠀ོ ⠀⠀
Ну пока ещё нет, я только проектирую ещё)
Но вообще конечно не хотелось бы дублировать логику в каждом subscribe
ну так сделай свой еррорХендлер и используй его во всех потребителях по дефолту
источник

S

Smooth Operator in Angular - русскоговорящее сообщество
а в свой еррорХендлер добавь поддержку плагинов
через который ты добавишь обработку этого конкретно кейса
источник

ZS

Z S in Angular - русскоговорящее сообщество
как запускаешь ?
источник

LS

Leonid Starchenko in Angular - русскоговорящее сообщество
уже справился, спасибо
источник

DB

Dilame 🎩 Bowzee ⠀⠀⠀ོ ⠀⠀ in Angular - русскоговорящее сообщество
Smooth Operator
ну так сделай свой еррорХендлер и используй его во всех потребителях по дефолту
То есть мой кастомный errorHandler это некая функция которая вставляет в пайплайн RxJS catchError() с моей логикой обработки этой ошибки?


const data$: Observable<string | null>;

const clean$ = data$.pipe(
 map(x => {
   if (x === null) {
     throw new NoldError();
   }
   return x;
 })
);


function errorHandler<T>() {
 return (source$: Observable<string>) =>
   source$.pipe(
     catchError(() => navigate('.....'))
   );
}

const consumer$ = clean$.pipe(errorHandler())


Вот так?
источник

S

Smooth Operator in Angular - русскоговорящее сообщество
Dilame 🎩 Bowzee ⠀⠀⠀ོ ⠀⠀
То есть мой кастомный errorHandler это некая функция которая вставляет в пайплайн RxJS catchError() с моей логикой обработки этой ошибки?


const data$: Observable<string | null>;

const clean$ = data$.pipe(
 map(x => {
   if (x === null) {
     throw new NoldError();
   }
   return x;
 })
);


function errorHandler<T>() {
 return (source$: Observable<string>) =>
   source$.pipe(
     catchError(() => navigate('.....'))
   );
}

const consumer$ = clean$.pipe(errorHandler())


Вот так?
нет
источник

S

Smooth Operator in Angular - русскоговорящее сообщество
Dilame 🎩 Bowzee ⠀⠀⠀ོ ⠀⠀
То есть мой кастомный errorHandler это некая функция которая вставляет в пайплайн RxJS catchError() с моей логикой обработки этой ошибки?


const data$: Observable<string | null>;

const clean$ = data$.pipe(
 map(x => {
   if (x === null) {
     throw new NoldError();
   }
   return x;
 })
);


function errorHandler<T>() {
 return (source$: Observable<string>) =>
   source$.pipe(
     catchError(() => navigate('.....'))
   );
}

const consumer$ = clean$.pipe(errorHandler())


Вот так?
ErrorHandler обрабатывает ошибки, это понятно?
источник

DB

Dilame 🎩 Bowzee ⠀⠀⠀ོ ⠀⠀ in Angular - русскоговорящее сообщество
Smooth Operator
ErrorHandler обрабатывает ошибки, это понятно?
Ну если надо понять только это, то да. Но я не понимаю, что именно он из себя представляет
источник

S

Smooth Operator in Angular - русскоговорящее сообщество
Dilame 🎩 Bowzee ⠀⠀⠀ོ ⠀⠀
Ну если надо понять только это, то да. Но я не понимаю, что именно он из себя представляет
с чем работает ErrorHandler?)
источник

DB

Dilame 🎩 Bowzee ⠀⠀⠀ོ ⠀⠀ in Angular - русскоговорящее сообщество
Smooth Operator
с чем работает ErrorHandler?)
Вот это я как раз и не могу понять) Ну, наверное с ошибками...
Так, errorHandler это функция, которую я должен передать в catchError?
источник

S

Smooth Operator in Angular - русскоговорящее сообщество
Dilame 🎩 Bowzee ⠀⠀⠀ོ ⠀⠀
Вот это я как раз и не могу понять) Ну, наверное с ошибками...
Так, errorHandler это функция, которую я должен передать в catchError?
в catchError только конкретизиация ошибки
источник