Size: a a a

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

2021 April 02

AK

Anton K. in Angular - русскоговорящее сообщество
у меня есть два связанных select на странице, при выборе первого загружаются данные с сервера для второго.
данные первого загружаются через async pipe. Хочу сейчас сделать кнопку "обновить" для первого селекта. Как лучше реализовать на rxjs?
источник

AS

Andrew Sverdlov in Angular - русскоговорящее сообщество
Roman Yazvinsky
mergeMap(arr => from(arr)) как минимум, мб есть способ попроще
Почему не просто from(arr)?
источник

RY

Roman Yazvinsky in Angular - русскоговорящее сообщество
Andrew Sverdlov
Почему не просто from(arr)?
Потому что я из условий не понял, приходит ли массив через observable или нет
источник

RY

Roman Yazvinsky in Angular - русскоговорящее сообщество
Anton K.
у меня есть два связанных select на странице, при выборе первого загружаются данные с сервера для второго.
данные первого загружаются через async pipe. Хочу сейчас сделать кнопку "обновить" для первого селекта. Как лучше реализовать на rxjs?
rxjs или ngrx? Если второе, то через эффекты
источник

AK

Anton K. in Angular - русскоговорящее сообщество
Roman Yazvinsky
rxjs или ngrx? Если второе, то через эффекты
rxjs
источник

AK

Anton K. in Angular - русскоговорящее сообщество
данные для первого селекта вот так сейчас работают:
readonly profiles$ = this.apiClient.getProfiles()
источник

AK

Anton K. in Angular - русскоговорящее сообщество
а второго readonly channels$ = this.selectedProfile$.pipe(switchMap(profile => this.apiClient.getChannels(profile)))
источник

RY

Roman Yazvinsky in Angular - русскоговорящее сообщество
Anton K.
данные для первого селекта вот так сейчас работают:
readonly profiles$ = this.apiClient.getProfiles()
Ну сделайте без asyncPipe, через subscribe/toPromise
источник

ЕУ

Евгений Удалов... in Angular - русскоговорящее сообщество
Roman Yazvinsky
Ну сделайте без asyncPipe, через subscribe/toPromise
никаких тупромис
источник

RY

Roman Yazvinsky in Angular - русскоговорящее сообщество
Anton K.
а второго readonly channels$ = this.selectedProfile$.pipe(switchMap(profile => this.apiClient.getChannels(profile)))
Я, кстати, подозреваю, что такая запись заставляет дважды вызывать запрос getProfiles, по одному на каждый asyncPipe
источник

RY

Roman Yazvinsky in Angular - русскоговорящее сообщество
Евгений Удалов
никаких тупромис
Какие аргументы? Кроме обработки ошибок
источник

ЕУ

Евгений Удалов... in Angular - русскоговорящее сообщество
Roman Yazvinsky
Какие аргументы? Кроме обработки ошибок
зачем?
источник

AK

Anton K. in Angular - русскоговорящее сообщество
Roman Yazvinsky
Я, кстати, подозреваю, что такая запись заставляет дважды вызывать запрос getProfiles, по одному на каждый asyncPipe
почему? второй асинк пайп работает с this.selectedProfile$. это BahviourSubject с выбранным объектом из первого селекта
источник

RY

Roman Yazvinsky in Angular - русскоговорящее сообщество
Anton K.
почему? второй асинк пайп работает с this.selectedProfile$. это BahviourSubject с выбранным объектом из первого селекта
А, да, извините
источник

AK

Anton K. in Angular - русскоговорящее сообщество
Roman Yazvinsky
Какие аргументы? Кроме обработки ошибок
эту задачу можно решить без промисов и toObservable, подозреваю, только я не знаю еще как
источник

ЕУ

Евгений Удалов... in Angular - русскоговорящее сообщество
Roman Yazvinsky
Какие аргументы? Кроме обработки ошибок
его вообще выпилить собираются. к тому же они не отменяемы пока
источник

RY

Roman Yazvinsky in Angular - русскоговорящее сообщество
Банально удобнее. На проде я бы не стал использовать в большинстве случаев
источник

AK

Anton K. in Angular - русскоговорящее сообщество
можно конечно завести еще один subject, который дергать в ngOnInit и при клике на кнопку "обновить", но есть подозрения, что это как-то криво
источник

RY

Roman Yazvinsky in Angular - русскоговорящее сообщество
Евгений Удалов
его вообще выпилить собираются. к тому же они не отменяемы пока
Его заменят на новые методы. Насчет отменяемости - согласен, но в моей практике это редко было необходимо
источник

ЕУ

Евгений Удалов... in Angular - русскоговорящее сообщество
Anton K.
можно конечно завести еще один subject, который дергать в ngOnInit и при клике на кнопку "обновить", но есть подозрения, что это как-то криво
это нормально
источник