Estoy cargando varias imágenes y antes de cargarlas quiero obtener el ancho y el alto de cada imagen. El problema es que mi función solo devuelve el ancho y el alto de la primera imagen. Aquí está mi código:
async getWidthAndHeight(files: any) { const newPromise = [files].map((file: any, i: any) => { return new Promise((resolve, reject) => { var reader = new FileReader(); reader.readAsDataURL(file[i]); reader.onload = async (e: any) => { var image = new Image(); image.src = e.target.result; image.onload = async () => { this.imageWidth = image.width; this.imageHeight = image.height; this.sizeObj = { width: this.imageWidth, height: this.imageHeight }; resolve(this.sizeObj) } } }) }) const final = await Promise.all(newPromise); return final }El valor devuelto es una matriz con las dimensiones de la primera imagen solamente. Quiero que la función devuelva las dimensiones de todas las imágenes. Cualquier ayuda sería muy apreciada. ¡Gracias!
Teniendo en cuenta sus archivos como FileList, use esto para crear una matriz de promesas y use el archivo en lugar del archivo [i]
const newPromise = Array.from(files).map(file => { console.log(file); // your code });