Size: a a a

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

2020 February 18

S

Smooth Operator in Angular - русскоговорящее сообщество
была ошибка HttpResponseError
стала UserNotFoundError
например
источник

DB

Dilame 🎩 Bowzee ⠀⠀⠀ོ ⠀⠀ in Angular - русскоговорящее сообщество
Smooth Operator
была ошибка HttpResponseError
стала UserNotFoundError
например
Угу... Тут понятно. Но кто в конечном итоге обрабатывает UserNotFoundError?
источник

S

Smooth Operator in Angular - русскоговорящее сообщество
Dilame 🎩 Bowzee ⠀⠀⠀ོ ⠀⠀
Угу... Тут понятно. Но кто в конечном итоге обрабатывает UserNotFoundError?
дальше где то ты подписываешься через .subscribe({ error: error => this.errorHandler.handleError(error) })
источник

DB

Dilame 🎩 Bowzee ⠀⠀⠀ོ ⠀⠀ in Angular - русскоговорящее сообщество
Smooth Operator
дальше где то ты подписываешься через .subscribe({ error: error => this.errorHandler.handleError(error) })
ErrorHandler - это Injectable класс?
handleError на вход принимает тип данных Error, и в зависимости от конкретного типа ошибки делает что надо?
источник

S

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

DB

Dilame 🎩 Bowzee ⠀⠀⠀ོ ⠀⠀ in Angular - русскоговорящее сообщество
Так, я нашёл, что это оказывается такой класс в ангуляре))

https://angular.io/api/core/ErrorHandler

А зачем его вызывать вручную? Он же вроде в DI контейнер цепляется и туда автоматически все ошибки стекаются?
источник

S

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

S

Smooth Operator in Angular - русскоговорящее сообщество
только это тебя ограничит в сигнатуре еррор хендлера
источник

S

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

DB

Dilame 🎩 Bowzee ⠀⠀⠀ོ ⠀⠀ in Angular - русскоговорящее сообщество
Smooth Operator
только это тебя ограничит в сигнатуре еррор хендлера
Ох, я готов на такие жертвы ради автоматизации. Да вообще не вижу особой проблемы в этом, там всё равно простыня из if(error instanceof SomeError).

Всё, у меня окончательно сложился паззл. Огромное спасибо!
источник

S

Smooth Operator in Angular - русскоговорящее сообщество
Dilame 🎩 Bowzee ⠀⠀⠀ོ ⠀⠀
Ох, я готов на такие жертвы ради автоматизации. Да вообще не вижу особой проблемы в этом, там всё равно простыня из if(error instanceof SomeError).

Всё, у меня окончательно сложился паззл. Огромное спасибо!
> там всё равно простыня из if(error instanceof SomeError)
осуждаю простыню
источник

S

Smooth Operator in Angular - русскоговорящее сообщество
делай лучше)
источник

DB

Dilame 🎩 Bowzee ⠀⠀⠀ོ ⠀⠀ in Angular - русскоговорящее сообщество
Smooth Operator
> там всё равно простыня из if(error instanceof SomeError)
осуждаю простыню
А есть ещё какие-то варианты?) Осуждаешь именно простыню, или сам способ if(error instanceof SomeError)?
источник

S

Smooth Operator in Angular - русскоговорящее сообщество
Dilame 🎩 Bowzee ⠀⠀⠀ོ ⠀⠀
А есть ещё какие-то варианты?) Осуждаешь именно простыню, или сам способ if(error instanceof SomeError)?
простыня нарушает OCP принцип
источник

MM

Mikhail Makarov in Angular - русскоговорящее сообщество
Подскажите, можно ли как-то показать другую страницу, но не перекидывая на неё, а тут же?
Т.е., есть у меня вот такой код const appRoutes = { path: 'diary', redirectTo: '/platform/diary', pathMatch: 'full' },
При вводе пути diary он перекидывает на страницу /platform/diary
А можно ли сделать, чтобы контент из /platform/diary тут же отображался по пути diary без редиректа?
источник

DB

Dilame 🎩 Bowzee ⠀⠀⠀ོ ⠀⠀ in Angular - русскоговорящее сообщество
Smooth Operator
простыня нарушает OCP принцип
Извиняюсь, это The Open Closed Principle?
Суть в том, что на каждый тип ошибки писать свой ErrorHandler?
источник

S

Smooth Operator in Angular - русскоговорящее сообщество
Dilame 🎩 Bowzee ⠀⠀⠀ོ ⠀⠀
Извиняюсь, это The Open Closed Principle?
Суть в том, что на каждый тип ошибки писать свой ErrorHandler?
да, этот принцип
суть в том, что
ты должен иметь возможность добавить новые кейсы обработки ошибок
не редактируя сам ErrorHandler или код которые его использует
источник

DB

Dilame 🎩 Bowzee ⠀⠀⠀ོ ⠀⠀ in Angular - русскоговорящее сообщество
Mikhail Makarov
Подскажите, можно ли как-то показать другую страницу, но не перекидывая на неё, а тут же?
Т.е., есть у меня вот такой код const appRoutes = { path: 'diary', redirectTo: '/platform/diary', pathMatch: 'full' },
При вводе пути diary он перекидывает на страницу /platform/diary
А можно ли сделать, чтобы контент из /platform/diary тут же отображался по пути diary без редиректа?
Ты можешь просто отображать один компонент по двум роутам вместо редиректа
источник

DB

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

OS

Oleg Safonov in Angular - русскоговорящее сообщество
```
urls$: observable<offerurlsinterface[]>;
constructor() {
   this.urls$ = this.offerurlsservice.geturls(this.id).pipe(
       map( urls => {
           this.counturls = urls.results.length;
           return urls.results.slice(0, 3);
       }),
       shareReplay()
   );
}
this.id).pipe(
       map( urls => {
           this.counturls = urls.results.length;
           return urls.results.slice(0, 3);
       }),
       shareReplay()
   );
}
```
источник