Angular - получить одну подписку из нескольких - PullRequest
0 голосов
/ 26 сентября 2019

Мне нужно иметь только самую последнюю подписку из нескольких.

Когда мое значение FormControl изменяется, мне нужно иметь только самое последнее значение после того, как пользователь закончил печатать.Вот мой код -

let control = this.register.controls['email'];
control.valueChanges.debounceTime(300).pipe(take(1)).subscribe(newValue => {
  console.log(newValue);
})

Но он возвращает несколько Subscriptions.Как я могу получить последний?

Спасибо!

Ответы [ 2 ]

1 голос
/ 26 сентября 2019

Вы можете достичь этого с помощью withLatestFrom или combineLatest.Но рекомендуемый способ - использовать withLatestFrom

  • take(1), который будет принимать только первое значение и его остановки наблюдения.

    this.formGroup.get('nom').valueChanges
    .pipe(
      debounceTime(300),
      // combineLatest()
      withLatestFrom()
    ).subscribe(newValue => {
      console.log(newValue);
    });
    

Оформить заказ: https://stackblitz.com/edit/angular-formcontrol-example-seyfto

0 голосов
/ 26 сентября 2019

Вы можете использовать withlatestfrom

let control = this.register.controls['email'];
control.valueChanges.debounceTime(300).pipe(withLastestForm(control.valueChanges)).subscribe(newValue => {
  console.log(newValue);
})

Измените этот код на свой соответственно

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...