¿Por qué mi promesa sigue pendiente? Tengo modal que tiene un formulario de envío dentro de él. Estoy tratando de devolver la cadena base64 del archivo CSV. esto parece devolver lo que quiero, pero se atasca en espera
const convertBase64 = (file: any) => { return new Promise((resolve, reject) => { const fileReader = new FileReader(); fileReader.readAsDataURL(file); fileReader.onload = () => { resolve(fileReader.result); }; fileReader.onerror = (error) => { reject(error); }; }); }; const handleFileRead = (file: File) : string | null => { const base64 = convertBase64(file).then( ret => { return ret; }, err => { console.log(err); return null; }); console.log("handleFileRead after conversion:", base64); return null; };
debe await
la convertBase64 function
cuando la llame. porque console.log
se ejecutará antes que .then
.
y para esperar la convertBase64 function
, deberá agregar la palabra clave async
antes de definir la convertBase64 function
.