328 votes

Subscribe est déprécié : Utilisez un observateur au lieu d'un rappel d'erreur

Quand je lance le linter, ça dit :

subscribe is deprecated: Use an observer instead of an error callback

Code (d'une application angulaire 7 avec angular-cli) :

    this.userService.updateUser(data).pipe(
       tap(() => {bla bla bla})
    ).subscribe(
       this.handleUpdateResponse.bind(this),
       this.handleError.bind(this)
    );

Je ne sais pas exactement ce que je dois utiliser et comment...

Merci !

9 votes

* Essayez donc d'utiliser .subscribe({ next: this.handleUpdateResponse.bind(this), error: this.handleError.bind(this) })

0 votes

Je n'arrive pas à le faire fonctionner en utilisant mon apiRest

6 votes

Une réponse détaillée peut être trouvée ici jeffryhouser.com/index.cfm/2019/8/27/

2voto

inorganik Points 2591

J'ai reçu l'avertissement parce que je l'ai transmis à des abonnés :

myObs.subscribe(() => someFunction());

Comme elle renvoie une seule valeur, elle était incompatible avec subscribe La signature des fonctions de l'entreprise.

En passant à ceci, l'avertissement a disparu (renvoie null/void) ;

myObs.subscribe(() => {
  someFunction();
});

1voto

Raslan N. Kiwan Points 35

Vous devriez remplacer tslint par eslint.

Comme TSLint est déprécié, il ne supporte pas la fonction @deprecated syntaxe de RXJS. ESLint est le linter correct à utiliser, pour faire le linting d'abonnement correctement.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X