Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

136
Vistas
Problema asíncrono dentro del interceptor angular

Tengo un interceptor que verifica si una condición es verdadera, abre una barra de bocadillos y espera a que el usuario haga clic en un botón (así que suscríbase al evento del observador del botón). Si es falso: devuelve la petición.

 intercept(req: HttpRequest<any>, next: HttpHandler): Observable<HttpEvent<any>> { if (this.rightsService.actualCookies && this.cookiesService.get('cookie') !== this.rightsService.actualCookies) { const snackBarRef = this.snackBar.open('Session expired', 'refresh'); snackBarRef.onAction().subscribe(() => { window.location.pathname = window.location.pathname.split('/')[0] }); } else { return next.handle(req); } }

Mi problema es que si la condición es verdadera, el interceptor no espera el observable y creo que devuelve una respuesta void . es por eso que otros interceptores reciben un error:

Cannot read property 'pipe' of undefined

en línea

 intercept(request: HttpRequest<unknown>, next: HttpHandler): Observable<HttpEvent<unknown>> { return next.handle(request).pipe(

Mi pregunta es cómo deshabilitar el interceptor para devolver un valor si (this.rightsService.actualCookies && this.cookiesService.get('cookie') !== this.rightsService.actualCookies) es true

about 4 years ago · Juan Pablo Isaza
1 Respuestas
Responde la pregunta

0

su interceptor DEBE devolver algo:

 intercept(req: HttpRequest<any>, next: HttpHandler): Observable<HttpEvent<any>> { if (this.rightsService.actualCookies && this.cookiesService.get('cookie') !== this.rightsService.actualCookies) { const snackBarRef = this.snackBar.open('Session expired', 'refresh'); // angular will subscribe. do whatever you need to do in tap. return snackBarRef.onAction().pipe(tap(() => { window.location.pathname = window.location.pathname.split('/')[0] })); } else { return next.handle(req); } }
about 4 years ago · Juan Pablo Isaza Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda