Size: a a a

2020 August 13

D

Dima in Angular Kyiv
А можна десь запис цього знайти?
источник

AO

Alex Okrushko in Angular Kyiv
Dima
А можна десь запис цього знайти?
Я спрошу, когда Стёпа закинет на Ютуб
источник

D

Dima in Angular Kyiv
Дякую!
источник

SS

Stepan Suvorov in Angular Kyiv
Alex Okrushko
Я спрошу, когда Стёпа закинет на Ютуб
как только отформатирует =)
эти 2 дня буду сильно загружен на работе. постараюсь на выходных найти время.
источник

DT

Denchik Tymokhin in Angular Kyiv
Stepan Suvorov
как только отформатирует =)
эти 2 дня буду сильно загружен на работе. постараюсь на выходных найти время.
очень ждем, спасибо
источник

ОС

Олександр Савуловськ... in Angular Kyiv
Добрый вечер. Помогите, пожалуйста с rxjs. Как оптимизировать такой код:
       this.dialogAddMark.open(DialogAddMarkComponent, {data: {workmanId}})
           .afterClosed()
           .pipe(takeUntil(this._destroy))
           .subscribe(data => {
               if (data == 200) {
                   //
                   this.req.post(getWorkmanMarkList)
                       .pipe(takeUntil(this._destroy))
                       .subscribe(data => this._markListOnWorkman = data.response);

               }
           })
источник

DT

Denchik Tymokhin in Angular Kyiv
Страшный сон subscribe в subscribe
источник

ОС

Олександр Савуловськ... in Angular Kyiv
Denchik Tymokhin
Страшный сон subscribe в subscribe
потому и прошу о помощи
источник

DT

Denchik Tymokhin in Angular Kyiv
Вынеси запрос в отдельный pipe с exhaustMap
источник

DT

Denchik Tymokhin in Angular Kyiv
Выше
источник

AO

Alex Okrushko in Angular Kyiv
// сделай его Observable 👇
_markListOnWorkman$: Observable<type> = this.dialogAddMark.open(DialogAddMarkComponent, {data: {workmanId}})
           .afterClosed()
           .pipe(
             // takeUnti не нужен
             // не важно какой из flattening operator - один раз только будет
             switchMap(data => {
               if (data !== 200) {
                 return of('error'); // что если с датой не так
               }
               return this.req.post(getWorkmanMarkList).pipe(
                 map(data => data.response)
                 takeUntil(this._destroy)
                 );
             )
           );
источник

ОС

Олександр Савуловськ... in Angular Kyiv
Alex Okrushko
// сделай его Observable 👇
_markListOnWorkman$: Observable<type> = this.dialogAddMark.open(DialogAddMarkComponent, {data: {workmanId}})
           .afterClosed()
           .pipe(
             // takeUnti не нужен
             // не важно какой из flattening operator - один раз только будет
             switchMap(data => {
               if (data !== 200) {
                 return of('error'); // что если с датой не так
               }
               return this.req.post(getWorkmanMarkList).pipe(
                 map(data => data.response)
                 takeUntil(this._destroy)
                 );
             )
           );
Спасибо!
источник

D

Dima in Angular Kyiv
Там точно takeuntil потрібен? Це ж ніби матіріалівська модалка і від неї ж не потрібно відписуватись?
источник

AO

Alex Okrushko in Angular Kyiv
не нужна, потому что юзеру надо всё равно её закрыть. И она только один раз эмитится.
источник

ЕБ

Евгений Баранов... in Angular Kyiv
Рубрика. Веселые загадки от прошлых писателей кода.
Есть модалка, которая грузит документы на бэк. Когда она в открытом или свёрнутом состоянии. Документы грузятся, но список не обновляется. Когда загрузка завершилась и закрываешь модалку список обновляется.
Явной привязки запроса на закрытие модалки нет.
Можно как-то прочекать почему дочерний компонент блокирует обнаружение изменений?
Чёт я уже поломался ((( в поисках решения
источник

ЕБ

Евгений Баранов... in Angular Kyiv
Или накручивать туда subject ???((( Но это приведет к ещё большему количеству ошибок и регрессии в будущем (((
источник

AO

Alex Okrushko in Angular Kyiv
stackblitz помог бы
источник

ЕБ

Евгений Баранов... in Angular Kyiv
Накрутить там всю эту катовасию достаточно сложно ((
Нет никакого механизма узнать у какого компонента поток приложения?
Звучит бредово конечно, но другого в голове нет.
источник

AO

Alex Okrushko in Angular Kyiv
Я обычно все модалки выношу из компонентов. Во-первых, что в дереве компонентов, что в ДОМ они вне компонента, который их вызывает. Во-вторых, тогда легче отделить дату, с которой модалка работает, и дату, которую она обновляет по окончанию. Тем самым всё равно появляется push-based модель, если компоненту, который вызывает модалку, нужна дата по её закрытию.
источник

ЕБ

Евгений Баранов... in Angular Kyiv
Спасибо, буду смотреть уже наверное завтра на свежую голову.
источник