Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

129
Views
¿Cómo hacer múltiples solicitudes en un mapa y detectar todos los errores con React?

Tengo una aplicación en la que obtengo algunas publicaciones del usuario y luego las inserto en un repositorio de GitHub. Sin embargo, me gustaría detectar todos los errores que puedan surgir de este mapa. ¿Cómo podría lograr eso? Actualmente, mi useState está, por supuesto, reemplazando el estado anterior allí y no estoy seguro de cómo proceder. Aquí está el código:

 const [errors, setErrors] = useState<string[]>([]) const triggerPostsBackup = (postsData) => { posts.map(async (post) => { try { await THE_REQUEST } catch (error) { const errorString = `${post.title} failed to upload!` setErrors(errors.concat(errorString)) } } }

¿Alguna sugerencia?

También traté de establecer una variable interna para mantener todos los errores y, al final del mapa, usé un useState para crear el estado de mis errores, pero fallé por completo allí.

about 4 years ago · Santiago Gelvez
2 answers
Answer question

0

Puede usar Promise.allSettled para capturar el resultado de cada solicitud. Luego, una vez que se completan todas las solicitudes, puede reducirlas, colocando las promesas rechazadas en una matriz de errores. Luego, finalmente, llame a setErrors.

 const [errors, setErrors] = useState<string[]>([]); const triggerPostsBackup = async (postsData) => { const results = await Promise.allSettled( posts.map(async (post) => { await THE_REQUEST; }) ); const errors = results.reduce<string[]>((acc, next, index) => { if (next.status === 'rejected') { acc.push(`${posts[index].title} failed to upload!`); } return acc; }, []); setErrors(errors); };
about 4 years ago · Santiago Gelvez Report

0

Encontré una solución a mi problema. Pude resolverlo con una callback de llamada ( documentación ) y se ve así:

 const [errors, setErrors] = useState<string[]>([]) const triggerPostsBackup = (postsData) => { posts.map(async (post) => { try { await THE_REQUEST } catch (error) { const errorString = `${post.title} failed to upload!` setErrors((previousState) => [...previousState, errorString]) } } }
about 4 years ago · Santiago Gelvez Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!