Solo me gustaría pedir sugerencias e ideas sobre mi problema actual, tengo un método que es getUserRoles que está obteniendo la lista de roles de usuarios que han iniciado sesión.
El problema que tengo es que hay instancias en las que getUserGeneralDetails de getUserRoles está causando infinito, está llamando a getUserGeneralDetails infinitamente y no entiendo por qué y qué lo causa.
Tal vez alguien pueda iluminarme con algún problema con el fragmento de código que tengo a continuación. Se agradecería, gracias.
#método
//In this method, we are just fetching the logged-in user roles list. public getUserRoles(): Promise<string[]> { if (this.authUser === null) { this.setAuthUser() } return new Promise((resolve, reject) => { this.userService .getUserGeneralDetails(this.authUser.nameid , this.accountId = 0) .pipe(catchError((error: any, caught: any) => { reject(error); return caught; }), map((res: any) => res.data && res.data.userAccountDto .filter(account => account.accountName === res.data.associatedAccount) .map(account => account.userRoleDto.roleName) )).subscribe((role: string[]) => { resolve(role); }); }); }#código que llama al método getUserRoles
this.authService .loginWithCredentials(username, password) .then((r: any) => { localStorage.removeItem("previousUrl"); if (r.isSuccess) { this.authService.getUserRoles().then((userRoles: string[]) => { localStorage.setItem("userRoles", JSON.stringify(userRoles)); }) this.route.navigateByUrl('/'); }else{ if(r.errors.length > 0){ if(r.errors[0].description.indexOf('not found') !== -1){ errMsg = ERR_FORM_MSG.INVALID_LOGIN; } } this.apiErrMsg = errMsg; } }) .catch((e): any => { this.apiErrMsg = e.message ? e.message : errMsg; }) .finally(() => { this.hasSubmit = false; this.closeLoader(); }); }#Detalles de usuario
getUserGeneralDetails(id: number , accountId:number): Observable<any> { const params = new HttpParams() .set('id', id.toString()) .set('accountId', accountId.toString()); return this.httpRequestService.get<any>(`${apiBaseUrl}/detail` , params); }