Size: a a a

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

2020 February 06

SK

Sergey Khrolenok in Angular - русскоговорящее сообщество
супернеочевидно
источник

B

Bretbas in Angular - русскоговорящее сообщество
Sergey Khrolenok
я бы так не делал
почему?
источник

SK

Sergey Khrolenok in Angular - русскоговорящее сообщество
потому что аннотацию вы повесили на контроллер загрузки файлов и когда смотришь на это понимаешь - ага запрос такой-то и вот тут фильтр на размер

глобальный интерцептор ни к чему не привязан

в глобальных таких интерцепторах как правило работа с сессией какой/токеном сессии/обработка ошибок но не какой-то частный случай типа загрузка файла изображения
источник

B

Bretbas in Angular - русскоговорящее сообщество
Sergey Khrolenok
потому что аннотацию вы повесили на контроллер загрузки файлов и когда смотришь на это понимаешь - ага запрос такой-то и вот тут фильтр на размер

глобальный интерцептор ни к чему не привязан

в глобальных таких интерцепторах как правило работа с сессией какой/токеном сессии/обработка ошибок но не какой-то частный случай типа загрузка файла изображения
ну в принципе да(
источник

B

Bretbas in Angular - русскоговорящее сообщество
очень печально, что там себя ведет прогресс.
Придется отказываться от него.

Чтобы сразу получать 413 с сервера...
источник

В

Виталий in Angular - русскоговорящее сообщество
Всем привет!

Есть два Observable (назовём их observable1 и observable2).
Задача: создать третий Observable (observable3) который испускает одно значение и завершается при наступлении subscribe первого обзёрвабл (observable1), ИЛИ испускает ошибку и завершается при наступлении subscribe второго обзёровабл (observable2)

Сейчас задачу решил так:

const observable1 = ...;
const observable2 = ...;

const observable3 = new Observable(subscriber => {
 observable1.subscribe(value => {
   subscriber.next(value);
   subscriber.complete();
 });

 observable2.subscribe(() => {
   subscriber.error();
 })
});


но это решение мне не нравится громозскостью. Мне кажется есть способ сделать это проще, спомощью пайпов или каки-нибудь операторов.

Может ли кто-нибудь улучшить мой код?
источник

Вキ

Вертихвост キバ in Angular - русскоговорящее сообщество
Виталий
Всем привет!

Есть два Observable (назовём их observable1 и observable2).
Задача: создать третий Observable (observable3) который испускает одно значение и завершается при наступлении subscribe первого обзёрвабл (observable1), ИЛИ испускает ошибку и завершается при наступлении subscribe второго обзёровабл (observable2)

Сейчас задачу решил так:

const observable1 = ...;
const observable2 = ...;

const observable3 = new Observable(subscriber => {
 observable1.subscribe(value => {
   subscriber.next(value);
   subscriber.complete();
 });

 observable2.subscribe(() => {
   subscriber.error();
 })
});


но это решение мне не нравится громозскостью. Мне кажется есть способ сделать это проще, спомощью пайпов или каки-нибудь операторов.

Может ли кто-нибудь улучшить мой код?
race(
 source1,
 source2.pipe(toError())
)
источник

В

Виталий in Angular - русскоговорящее сообщество
Вертихвост キバ
race(
 source1,
 source2.pipe(toError())
)
О! Спасибо большое!
источник

В

Виталий in Angular - русскоговорящее сообщество
Вертихвост キバ
race(
 source1,
 source2.pipe(toError())
)
А он разве завершится после срабатывания одного из source?
источник

S

Smooth Operator in Angular - русскоговорящее сообщество
Виталий
Всем привет!

Есть два Observable (назовём их observable1 и observable2).
Задача: создать третий Observable (observable3) который испускает одно значение и завершается при наступлении subscribe первого обзёрвабл (observable1), ИЛИ испускает ошибку и завершается при наступлении subscribe второго обзёровабл (observable2)

Сейчас задачу решил так:

const observable1 = ...;
const observable2 = ...;

const observable3 = new Observable(subscriber => {
 observable1.subscribe(value => {
   subscriber.next(value);
   subscriber.complete();
 });

 observable2.subscribe(() => {
   subscriber.error();
 })
});


но это решение мне не нравится громозскостью. Мне кажется есть способ сделать это проще, спомощью пайпов или каки-нибудь операторов.

Может ли кто-нибудь улучшить мой код?
источник

Вキ

Вертихвост キバ in Angular - русскоговорящее сообщество
Виталий
А он разве завершится после срабатывания одного из source?
Кто первый эмитнет, тот и будет активен
источник

DD

Dmitriy D in Angular - русскоговорящее сообщество
Виталий
А он разве завершится после срабатывания одного из source?
Если кинуть эррор то да
источник

В

Виталий in Angular - русскоговорящее сообщество
Вертихвост キバ
Кто первый эмитнет, тот и будет активен
может так?

race(
 source1,
 source2.pipe(toError())
).pipe(take(1)

?
источник

B

Bretbas in Angular - русскоговорящее сообщество
finalize оператор сработает даже если были ошибки ?
источник

B

Bretbas in Angular - русскоговорящее сообщество
или один фиг catchError нужно добавлять?
источник

В

Виталий in Angular - русскоговорящее сообщество
Вертихвост キバ
race(
 source1,
 source2.pipe(toError())
)
toError - что-то такого пайпа не найду...
источник

Вキ

Вертихвост キバ in Angular - русскоговорящее сообщество
Виталий
toError - что-то такого пайпа не найду...
Его надо сделать)
источник

Вキ

Вертихвост キバ in Angular - русскоговорящее сообщество
const toError = (error: string) => () => throwError(error);
источник

В

Виталий in Angular - русскоговорящее сообщество
Вертихвост キバ
const toError = (error: string) => () => throwError(error);
Спасибо)
источник

В

Виталий in Angular - русскоговорящее сообщество
Вертихвост キバ
const toError = (error: string) => () => throwError(error);
А take(1) нужно использовать чтоб завершился 3 обзервабл?
источник