Estoy cargando varios archivos por separado usando axios.
Esta es la solicitud (todo el siguiente código está dentro de una función asíncrona):
const proms = files.map(file => { let formData = new FormData(); formData.append("file", file); return axios.post(`/upload/${userId}`, formData) });Proms será una serie de promesas, así que procedo a Promise.all it:
const res = await Promise.all(proms) Si hago console.log(res) , muestra una respuesta exitosa del servidor como puede ver aquí:
Array(3) [ {…}, {…}, {…} ] 0: Object { data: {…}, status: 200, statusText: "OK", … } config: Object { timeout: 0, xsrfCookieName: "XSRF-TOKEN", xsrfHeaderName: "X-XSRF-TOKEN", … } data: Object { fieldname: "file", originalname: "612_photo.jpg", encoding: "7bit", … } destination: ************************ encoding: "7bit" fieldname: "file" filename: "/1648309550808-586868206.jpeg" mimetype: "image/jpeg" originalname: "612_photo.jpg" path: ************************ size: 43267 <prototype>: Object { … } headers: Object { "content-length": "395", "content-type": "application/json; charset=utf-8" } request: XMLHttpRequest { readyState: 4, timeout: 0, withCredentials: false, … } status: 200 statusText: "OK" <prototype>: Object { … } 1: Object { data: {…}, status: 200, statusText: "OK", … } 2: Object { data: {…}, status: 200, statusText: "OK", … } length: 3 <prototype>: Array [] Pero luego, cuando hago console.log(res.data) no está definido. ¿Que está sucediendo aquí?
su respuesta (res) es una matriz, por lo que no puede acceder a res.data, intente:
res.forEach(item=>{console.log(item.data)})