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

82
Vistas
Uso correcto de Promises y funciones await/async

Estoy trabajando en un Backend For Frontend (BFF) que recibe una solicitud por parte del front-end, el bff solicita otra api y con las respuestas, crea el objeto para volver al front-end.

Quisiera saber si estoy usando promesas y espero llamada correctamente, hay dos situaciones:

 const [affiliates, { content }]: [ { content: AffiliateType[] }, IManagerTypeList, ] = await Promise.all([ await this.affiliatesService.getAffiliates( { clientId: client?.id }, ), await this.managersService.getManagers( { clientId: client?.id }, ), ])

getAffiliates y getManagers son métodos asíncronos que llaman a otra API. El content constante vuelvo directamente al front-end. Con affiliates , hago lo siguiente:

 const unresolvedTransformedAffiliateToReturn = affiliates.content.map( async (affiliate): Promise<AffiliateType> => { const addressInfo: AddressType = await this.addressService.getAddressesById( affiliate.addressId, ) const managerInfo: ManagersType = await this.managersService.getManagers( affiliate.managerId, ) return { id: affiliate.id, name: affiliate.name, clientId: affiliate.clientId, managerId: affiliate.managerId, addressId: affiliate.addressId, address: addressInfo, manager: managerInfo, } }, ) const transformedAffiliateToReturn = await Promise.all( unresolvedTransformedAffiliateToReturn, )

Que esta pasando aqui. affiliates.content es una matriz de objetos. Necesito usar algunas variables de afiliado para llamar a los puntos finales de getAddressesById y getManagers (también asíncronos), como addressInfo y managerInfo, luego, use este retorno para volver al front-end.

El retorno final al front-end es:

 { managers: content, affiliates: transformedAffiliateToReturn, }

Todo funciona correctamente. Solo me pregunto si es la forma correcta de usar las funciones de promise.all y async/wait.

Algunas opiniones o sugerencias serán apreciadas. ¡Gracias!

EDITAR: Ejemplo de solicitud getAffiliates :

 getAffiliates<R>(id: number, api?: string): Promise<R> { return this.customHttpService.mountRequest( RequestTypeEnum.GET, `/endpoint/${id}`, null, null, null, api, true, )

}

alcance mountRequest :

 async mountRequest<P, B, H, R>( requestType: RequestTypeEnum, endpoint: string, params?: P, body?: B, headers?: H, api?: string, ignoreNotFoundError?: boolean, ): Promise<R> { const defaultApi: string = api ? api : let request: Observable<AxiosResponse<R>> ... } )
about 4 years ago · Juan Pablo Isaza
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