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

654
Vistas
Cómo lidiar con suscripciones anidadas en Angular, cuando podría llamar a un método nulo

Tengo el siguiente código:

 this.rolesService.addEmployeeRoles(addDtos).subscribe( () => { if (removeIds.length > 0) { this.rolesService.removeEmployeeRoles(removeIds).subscribe( this.bsModalRef.hide, error => console.log('error' + error)); } else this.bsModalRef.hide(); }, error => console.log('error' + error));

¿Cómo se puede reescribir esto para que no tenga que usar suscripciones anidadas? Estaba mirando ejemplos en línea, pero no estoy seguro de cómo manejaría la parte else aquí que llama a un método void.

He estado mirando ejemplos de flatmap , no estoy seguro de cómo aplicarlos en este caso de uso.

over 4 years ago · Santiago Trujillo
1 Respuestas
Responde la pregunta

0

Podría usar flatMap o, por ejemplo switchMap . Como solo necesitamos una suscripción interna, elegiría switchMap . SwitchMap espera que se devuelva un observable, solo puede usar of crear un observable ficticio. No estoy usando EMPTY aquí porque queremos realizar un efecto secundario después de switchMap, es decir, cerrar el modal. Así que sugeriría lo siguiente:

 import { of } from 'rxjs'; import { switchMap, tap } from 'rxjs/operators' //.... this.rolesService.addEmployeeRoles(addDtos).pipe( switchMap(() => { if (removeIds.length > 0) { return this.rolesService.removeEmployeeRoles(removeIds) } return of('whatever'); }), tap(_ => this.bsModalRef.hide()) ).subscribe();

Alternativamente, puede devolver EMPTY cuando no realice una llamada a la API y cerrar el modal dentro de la suscripción.

over 4 years ago · Santiago Trujillo 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