Size: a a a

2020 July 08

ОС

Олександр Савуловськ... in Angular Kyiv
Скажите такие ошибки (валидность токена) лучше проверять в интерцепторе или в сервисе апи?
источник

ОС

Олександр Савуловськ... in Angular Kyiv
Спасибо
источник

ОС

Олександр Савуловськ... in Angular Kyiv
Спасибо
источник

ОЛ

Олександр Левківськи... in Angular Kyiv
Олександр Савуловський
Скажите такие ошибки (валидность токена) лучше проверять в интерцепторе или в сервисе апи?
Всі помилки які відносяться до  токена оброблюються в інтерцепторі.
Всі інші помилки в сервісі апі.
источник

ОС

Олександр Савуловськ... in Angular Kyiv
Олександр Левківський
Всі помилки які відносяться до  токена оброблюються в інтерцепторі.
Всі інші помилки в сервісі апі.
Спасибо
источник

ОС

Олександр Савуловськ... in Angular Kyiv
Олександр Левківський
Добрий день.
Потрібно вкінці pipe() додати функцію catchError().
Добавил в конце catchError():
       return next.handle(request)
           .pipe(
               tap(
                   event => {
                   },
                   err => {
                       if (err instanceof HttpErrorResponse) {
                           if (err.status == 401) {
                               this.loginService.logOut();
                               console.log('Ошибка. Код ошибки ', err.status);
                           }
                       }
                   }
               ),

               catchError(err => {
                   throw 'Ошибка. Код ошибки ' + err.status;
               })
           )
источник

ОС

Олександр Савуловськ... in Angular Kyiv
источник

ОС

Олександр Савуловськ... in Angular Kyiv
Но все равно в консоле 2 ошибки. Что я не правильно делаю?
источник

ОЛ

Олександр Левківськи... in Angular Kyiv
Олександр Савуловський
Добавил в конце catchError():
       return next.handle(request)
           .pipe(
               tap(
                   event => {
                   },
                   err => {
                       if (err instanceof HttpErrorResponse) {
                           if (err.status == 401) {
                               this.loginService.logOut();
                               console.log('Ошибка. Код ошибки ', err.status);
                           }
                       }
                   }
               ),

               catchError(err => {
                   throw 'Ошибка. Код ошибки ' + err.status;
               })
           )
throw 'Ошибка. Код ошибки ' + err.status;  =>  console.log('Ошибка. Код ошибки ' + err.status);
источник

M

Malikov in Angular Kyiv
Олександр Савуловський
Но все равно в консоле 2 ошибки. Что я не правильно делаю?
ты делаешь throw
источник

ОЛ

Олександр Левківськи... in Angular Kyiv
Перша помилка POST, оброблюється на рівні сервіса апі, вкінці функції pipe() додаємо catchError(this.handleError).
источник

ОС

Олександр Савуловськ... in Angular Kyiv
Олександр Левківський
Перша помилка POST, оброблюється на рівні сервіса апі, вкінці функції pipe() додаємо catchError(this.handleError).
т.е. нужно дважды обработать и в интерцепторе и в сервисе - правильно я понял?
источник

ОС

Олександр Савуловськ... in Angular Kyiv
Олександр Левківський
throw 'Ошибка. Код ошибки ' + err.status;  =>  console.log('Ошибка. Код ошибки ' + err.status);
Если я вас правильно понял сделал так:
   catchError(err => {
                   console.log('Ошибка. Код ошибки ' + err.status);
               })
Но ругается на параметр err так как я понимаю нужно возвратить Observable
источник

M

Malikov in Angular Kyiv
Олександр Савуловський
Если я вас правильно понял сделал так:
   catchError(err => {
                   console.log('Ошибка. Код ошибки ' + err.status);
               })
Но ругается на параметр err так как я понимаю нужно возвратить Observable
по-другому никак, надо вернуть observable из catchError
источник

M

Malikov in Angular Kyiv
чтоб хттп-ошибка не консолилась, просто добавьте в subscribe  обработчик  error
источник

M

Malikov in Angular Kyiv
аа это интерсептор
источник

ОС

Олександр Савуловськ... in Angular Kyiv
Malikov
аа это интерсептор
да
источник

ОС

Олександр Савуловськ... in Angular Kyiv
Проверка на валидность токена
источник

M

Malikov in Angular Kyiv
тогда возвращать of(что_нибудь)
источник

ОС

Олександр Савуловськ... in Angular Kyiv
Malikov
тогда возвращать of(что_нибудь)
И в интерцепотре и в апи сервисе. Правильно?
источник