J'essaie de mettre à niveau mon application de Angular 5 à Angular 6. J'ai suivi les étapes sur le https: //update.angular. io / Au moins je pense que je l'ai fait.
L'erreur est:
Property 'debounceTime' does not exist on type 'Subject<string>'.
Mes composants ont également perdu l'importation debounceTime. Je pense que la mise à jour ng l'a supprimé.
Je l'ai résolu avec l'aide de @ Siva636 et @Andrew Lobban.
J'avais besoin d'utiliser un tuyau:
this.field$.pipe(
debounceTime(400),
distinctUntilChanged())
À partir de Angular 6.1.8, il suffit d'importer et d'ajouter un tube comme dans l'exemple ci-dessous
import {debounceTime} from 'rxjs/operators';
Puis sur le terrain juste avant le canal d'appel de la méthode d'abonnement observable (debounceTime (1000)) comme ci-dessous:
emailControl.valueChanges.pipe(debounceTime(1000)).subscribe(value => this.setMessage(emailControl));
Et c'est tout, c'est juste une réponse mise à jour de la réponse de @ tiago - où elle définit const debouncetime - nous n'avons pas vraiment besoin d'utiliser const et pipe.
Après la documentation de reactivex, vous devez également vous abonner au tube observable:
.pipe(
debounceTime(500),
distinctUntilChanged(),
map((val) => {
...
})
)
.subscribe();
je suis désolé pour le retard, mais je reçois ce problème aujourd'hui et résolu comme ça. je résous ce problème comme ceci: première importation comme ceci:
import {debounceTime} from 'rxjs/operators';
import {pipe} from 'rxjs'
Ensuite, créez un const comme celui-ci (j'ai essayé de le faire directement sans dupliquer le tuyau, mais cela n'a pas fonctionné, j'ai donc trouvé cette solution):
const debouncetime = pipe(debounceTime(1000));
Et puis utilisez-le avant de vous abonner, par exemple, je faisais un validateur de messagerie avec des messages:
const emailControl = this.registerForm.get('email');
emailControl.valueChanges
.pipe(debouncetime)
.subscribe(value => this.setEmailMessage(emailControl))
je ne sais pas si ce sont les meilleures solutions mais cela fonctionne parfaitement. J'espère que ça aide quelqu'un!