web-dev-qa-db-fra.com

Comment corriger l'erreur 'source.lift n'est pas une fonction' en angulaire?

J'utilise une version personnalisée du projet angularsource.lift is not a function lorsque l'appel http get est effectué. L'erreur est dans le fichier core.js.

Comment résoudre ce problème?

 enter image description here

3
wonderful world

Nous avons eu le même problème aussi. À la fin, le problème s’est révélé être dû à des crochets mal assortis. Nous avons utilisé l'opérateur switchMap et l'opérateur catcherror. Mais parce que nous avions les crochets faux. L'opérateur catcherror a été pris comme second paramètre du switchMap (le sélecteur de résultat) assez curieusement, cela reste néanmoins compilé. Alors s'il vous plaît vérifiez vos supports.

5
Nico Timmerman

J'ai eu la même erreur dans mon application web, je ne l'ai pas corrigée avant de réaliser un test de mise à niveau de la version de rxjs, car je l'avais à la version 6.0.0, en la changeant pour la dernière en ce moment, version 6.3.2 corrigée mon problème… .. En conclusion, c’est un bogue de la première version de rxjs, nous devrions le tester un peu plus, mais jusqu’à présent, tout va bien… .. J'espère que cela vous aide.

2
Alejandro

J'ai les mêmes problèmes. catchError ne devrait pas être entre parenthèses.

Wrong: catchError appelé dans tap

  getHeroes() : Observable<Hero[]> {
    return this.http.get<Hero[]>(this.heroesUrl)
      .pipe(tap(_ => console.log('Fetching heroes'),
      catchError(this.handleError('getting heroes', []))  ))
  }

 enter image description here

Correct is: (catchError not in tap)

  getHeroes() : Observable<Hero[]> {
    return this.http.get<Hero[]>(this.heroesUrl)
      .pipe(tap(_ => console.log('Fetching heroes')),
      catchError(this.handleError('getting heroes', [])  ))
  }
0
Witold Kaczurba