Tengo errores con el catchError de authService.ts es angular 7 <code>import { Injectable } from '@angular/core'; import urljoin from 'url...

Carlos Enrique Ramírez Flores

Carlos Enrique Ramírez Flores

Pregunta
studenthace 6 años

Tengo errores con el catchError de authService.ts

es angular 7

import { Injectable } from '@angular/core'; import urljoin from 'url-join' import { environment } from 'src/environments/environment'; import { User } from './user.model'; import { HttpHeaders, HttpClient, HttpErrorResponse } from '@angular/common/http'; import { map, catchError, first } from 'rxjs/operators'; import { Observable } from 'rxjs'; import { Router } from '@angular/router'; import { MatSnackBar } from '@angular/material'; @Injectable({ providedIn: 'root' }) export class AuthService { usersUrl: string; currentUser?: User; constructor(private http: HttpClient, private router: Router, private snackBar:MatSnackBar) { this.usersUrl = urljoin(environment.apiUrl, 'auth'); if(this.isLoggedIn()){ const {userId,firstName, lastName, email} = JSON.parse(localStorage.getItem('user')); this.currentUser = new User(email,null, firstName, lastName,email); } } signup(user: User){ const body = JSON.stringify(user); const headers = new HttpHeaders({'Content-Type': 'application/json'}); return this.http.post(urljoin(this.usersUrl,'signup'),body,{headers}) .pipe( map((response: Response) => { const json:any = response; this.login(json); return json; }), catchError((error) => { console.log(error); Observable.throw(error); })); } signin(user:User){ const body = JSON.stringify(user); const headers = new HttpHeaders({'Content-Type': 'application/json'}); return this.http.post(urljoin(this.usersUrl,'signin'),body,{headers}) .pipe( map((respon: Response)=>{ const json:any = respon; this.login(json) return json; }), catchError((error: HttpErrorResponse) => { console.log(error); Observable.throw(error); })); } login = ({token, userId, firstName, lastName, email}) =>{ this.currentUser = new User(email,null, firstName,lastName,userId); localStorage.setItem('token',token); localStorage.setItem('user', JSON.stringify({userId,firstName,lastName,email})); this.router.navigateByUrl('/') } isLoggedIn(){ return localStorage.getItem('token') !== null; } logout(){ localStorage.clear(); this.currentUser = null; this.router.navigateByUrl('/') } showError(message){ this.snackBar.open(message, 'Close', { duration: 3000 }); } public handleError = (error:any) => { const { error: { name }, message } = error; if(name==='TokenExpiredError'){ this.showError('Tu sesión ha expirado') }else if(name==='JsonWebTokenError'){ this.showError('Ocurrio un problema con tu sesión'); }else{ this.showError(message || 'HO HO! A ocurrido un error, vuelve a intentarlo'); } this.logout(); } }

alguien tuvo el mismo problema ?

1 respuestas
para escribir tu comentario
    Walter Lensinas

    Walter Lensinas

    studenthace 6 años

    ¿Cuál es el error? ¿lo pudiste solucionar?

Curso de Mean Stack Online 2017

Curso de Mean Stack Online 2017

¿Quieres ser un desarrollador profesional de JavaScript? Con el curso de Fullstack JS con MEAN desarrollarás tus propias aplicaciones con Node.js y Angular 4 y aprenderás a hacer despliegue de tus aplicaciones en ambientes productivos con Heroku.

Curso de Mean Stack Online 2017
Curso de Mean Stack Online 2017

Curso de Mean Stack Online 2017

¿Quieres ser un desarrollador profesional de JavaScript? Con el curso de Fullstack JS con MEAN desarrollarás tus propias aplicaciones con Node.js y Angular 4 y aprenderás a hacer despliegue de tus aplicaciones en ambientes productivos con Heroku.