Size: a a a

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

2021 March 24

Кm

Кирилл mrDoode in Angular - русскоговорящее сообщество
true || false
не охота делать вложенный subscription
По какой причине?
источник

DB

Dmitry Beryllo in Angular - русскоговорящее сообщество
Anton Shvets
а что ты хочешь оптимизировать в конфигах?
я как раз ничего не хочу там оптимизировать, времени мало и надеюсь на то что ангуляр сам там все хорошо делает и туда уже лезть не нужно
источник

t

true || false in Angular - русскоговорящее сообщество
Кирилл mrDoode
По какой причине?
возможно будут и еще другие запросы которые будут зависеть от 2-го, далее от 3-го, и это будет дофига вложенностей
источник

t

true || false in Angular - русскоговорящее сообщество
нужно , чтоб было все красиво, по rxjs-овски ))
источник

DB

Dmitry Beryllo in Angular - русскоговорящее сообщество
Maksim
в конфигах нечего настраивать, можно лишь поотключать оптимизации которые включены по умолчанию
Отлично, спасибо )
источник

M

Maksim in Angular - русскоговорящее сообщество
Dmitry Beryllo
я как раз ничего не хочу там оптимизировать, времени мало и надеюсь на то что ангуляр сам там все хорошо делает и туда уже лезть не нужно
туда лезть не нужно, angular cli сам делает все возможное
источник

DB

Dmitry Beryllo in Angular - русскоговорящее сообщество
Maksim
туда лезть не нужно, angular cli сам делает все возможное
🤩 круто )
источник

AV

Alexey Vasiliev in Angular - русскоговорящее сообщество
true || false
возможно будут и еще другие запросы которые будут зависеть от 2-го, далее от 3-го, и это будет дофига вложенностей
Ну так у тебя может быть какое-то неизвестно количество последовательных запросов?
источник

t

true || false in Angular - русскоговорящее сообщество
Alexey Vasiliev
Ну так у тебя может быть какое-то неизвестно количество последовательных запросов?
гипотетически, в будущем
источник

t

true || false in Angular - русскоговорящее сообщество
но в данный момент пока 2
источник

t

true || false in Angular - русскоговорящее сообщество
Alexey Vasiliev
Ну так у тебя может быть какое-то неизвестно количество последовательных запросов?
switchmap мне придется делать вложенность
источник

t

true || false in Angular - русскоговорящее сообщество
что то типа forkJoin нужно
источник

DB

Dmitry Beryllo in Angular - русскоговорящее сообщество
Просто все предыдущие проекты были с самописными конфигами и туда не часто но стабильно лазили...
поэтому сейчас есть ощущение легкого испуга когда все 1-й командой решается )
источник

AR

Albert Rie in Angular - русскоговорящее сообщество
true || false
switchmap мне придется делать вложенность
Почему? Грубо говоря будет выглядеть так:

of("a").pipe(
   switchMap((a) => of("b")),
   switchMap((b) => of("c")),
   switchMap((c) => of("d"))
)

> "d"
источник

M

Maksim in Angular - русскоговорящее сообщество
true || false
что то типа forkJoin нужно
switchMap может возвращать все что угодно, включая forkJoin
источник

Л

Леонид in Angular - русскоговорящее сообщество
Есть тупой вопрос, как сделать что бы из объекта:
const a = {
first: 1,
second: 2,
}
Получить тип:
( 1 | 2 )
То есть получить тип, являющийся значением свойств объекта)
источник

AR

Albert Rie in Angular - русскоговорящее сообщество
true || false
switchmap мне придется делать вложенность
Или так:

const a = of("a")

const b = a.pipe(switchMap((a) => of( a + "b")))
....
const c = b.pipe(switchMap((b) => of( b + "c")))
....
const d = c.pipe(switchMap((c) => of( c + "d")))

c.subscribe() -> "abc"
d.subscribe() -> "abcd"
источник

t

true || false in Angular - русскоговорящее сообщество
Albert Rie
Или так:

const a = of("a")

const b = a.pipe(switchMap((a) => of( a + "b")))
....
const c = b.pipe(switchMap((b) => of( b + "c")))
....
const d = c.pipe(switchMap((c) => of( c + "d")))

c.subscribe() -> "abc"
d.subscribe() -> "abcd"
спасибо, пойду поэкспериментирую
источник

7

7384114837 in Angular - русскоговорящее сообщество
источник

MP

Mykhailo Pashchenko in Angular - русскоговорящее сообщество
Добрый день! Вопрос насчет валидации в ангуляре.
Мне нужно проверять  уникальность вводимого юзернейма. Для этого я написал следующий валидатор, который отправлял запрос на бэкэнд при вводе нового символа:
  public static adminValidator(adminService: AdminUserService): AsyncValidatorFn | any {
   return async (control: AbstractControl) => {
     const username = control?.value;
     let unique = await adminService.isUsernameUnique(username);
     return !unique;
   }
 }


Это работает. Я захотел добавить задержку в 300мс перед отправкой запроса, начал добавлять дебаунсер, в итоге валидатор отрабатывает только один раз - при создании формы, и больше не срабатывает. Подскажите, что я сделал не так?

  public static adminUserUniqueValidator(adminService: AdminUserService): AsyncValidatorFn {
   return control => control.valueChanges
     ?.pipe(
       debounceTime(300),
       distinctUntilChanged(),
       switchMap((value: string) => adminService.isUsernameUnique(value)),
       map((unique: boolean) =>
         unique ? null : {'usernameUniquenessViolated': true}
         ),
       first());
 }
источник