en este momento estoy tratando de asegurarme de que estoy manejando los errores correctamente en una transmisión que primero obtiene la identificación de un grupo y luego usa esa identificación de grupo para obtener información de perfil.
Lo necesito para que sea obvio qué paso está causando el error: obtener ID de grupo o obtener información de perfil.
En este momento tengo algo como esto, pero no estoy seguro si esto es correcto.
this.groupRepository .getUserGroup() .pipe(mergeMap(group) => { return this.profileRepository.getAllProfiles(group.id) }) .subscribe( (res) => { // doing things in here to set the groups and profiles }, (error) => { this.error = error; } );Lo estás haciendo correctamente.
Los errores de ambos métodos terminarían en (error) => {...} .
Pequeñas pruebas para jugar con:
of('A', 'B', 'C').pipe(mergeMap(letter => { return of('E', 'F', 'G'); })).subscribe( (res) => { console.log(res); }, (error) => { console.log(error); } );Devuelve: 'E', 'F', 'G', 'E', 'F', 'G'
Con el segundo método lanza:
of('A', 'B', 'C').pipe(mergeMap(letter => { return throwError('bad'); })).subscribe( (res) => { console.log(res); }, (error) => { console.log(error); } );Devuelve: "malo"
Con el primer método lanza:
throwError('bad').pipe(mergeMap(letter => { return of('E', 'F', 'G'); })).subscribe( (res) => { console.log(res); }, (error) => { console.log(error); } );Devuelve: "malo"