Обновление Angular 6: debounceTime не является собственностью субъекта - PullRequest
0 голосов
/ 05 мая 2018

Я пытаюсь обновить свое приложение с Angular 5 до Angular 6. Я следовал инструкциям на https://update.angular.io/ По крайней мере, я так думаю.

Ошибка:

Property 'debounceTime' does not exist on type 'Subject<string>'.

Также мои компоненты потеряли импорт debounceTime. Я думаю, что обновление нг убрал его.

Ответы [ 4 ]

0 голосов
/ 28 сентября 2018

Начиная с версии Angular 6.1.8, просто нужно импортировать и добавить трубу, как показано в примере ниже

import {debounceTime} from 'rxjs/operators';

Затем в поле непосредственно перед наблюдаемым конвейером вызова метода подписки (debounceTime (1000)), как показано ниже:

emailControl.valueChanges.pipe(debounceTime(1000)).subscribe(value => this.setMessage(emailControl));

И это все, это просто обновленные ответы @ tiago - где она определяет время отката const - нам не нужно использовать const и pipe.

0 голосов
/ 21 июня 2018

Следуя документам о реактиве, вы также должны подписаться на наблюдаемый канал:

.pipe(
    debounceTime(500),
    distinctUntilChanged(),
    map((val) => {
        ...
    })
)
.subscribe();

Наблюдаемая называется «холодной» наблюдаемой, если она не начинает испускать предметы, пока наблюдатель не подпишется на нее.

0 голосов
/ 09 августа 2018

Прошу прощения за задержку, но я просто получил эту проблему сегодня и исправил вот так. я решаю эту проблему следующим образом: Первый импорт, как это:

import {debounceTime} from 'rxjs/operators';
import {pipe} from 'rxjs'

Затем создайте const, подобный этому (я пытался сделать это напрямую, не дублируя трубу, но не сработал, поэтому я нашел это решение):

const debouncetime = pipe(debounceTime(1000));

А затем используйте его перед подпиской, например, я проверял электронную почту с сообщениями:

const emailControl = this.registerForm.get('email');
    emailControl.valueChanges
     .pipe(debouncetime)
     .subscribe(value => this.setEmailMessage(emailControl))

Не знаю, если это лучшие решения, но он работает отлично. Надеюсь, это кому-нибудь поможет!

0 голосов
/ 05 мая 2018

Я решил это с помощью @ Siva636 и @Andrew Lobban.

Мне нужно было использовать трубу:

  this.field$.pipe(
      debounceTime(400),
      distinctUntilChanged())
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...