conto asincrono del tempo perso per JS

Ho #perso una buona quantità di quarti d'ora (e #maremma...) oggi a cercare di capire come straca far funzionare questo altrimenti orribile #codice dentro un ciclo (che deve prima terminare tutto, o il programma non ha i dati giusti) in #JavaScript... 😵️

const reader = new FileReader();
reader.onload = () => {
    const img = document.createElement('img');
    img.onload = () => {
        // ... un sacco di stronzate che non centrano
    }
    img.src = reader.result;
}
reader.readAsDataURL(file);

Ho cercato #online varie soluzioni, per un motivo o per un altro non le capivo però (#skillissue skillissue skillissue), e ho perso la #pazienza a provare e riprovare, finché non ho chiesto alla divinità dell'autocompletamento #ChatGPT. A 'sto giro, è stato più utile di mezzo #Stackoverflow. 🙏️

Unendo il suo aiuto, + un (1) consiglio di utenti umani su quei #forum brutti, è uscita una roba che funziona e non fa venire il mal di testa a leggere...

const img = new Image();
img.src = await readFileAsync(file);
await img.decode();
// ... le stesse stronzate di prima, ma meglio

function readFileAsync(file) {
    return new Promise((resolve) => {
        const reader = new FileReader();
        reader.onload = (event) => {
            resolve(event.target.result);
        };
	reader.readAsDataURL(file);
    });
}
@octospacc



  • Tags: ChatGPT, codice, forum, JavaScript, maremma, online, pazienza, perso, stackoverflow
  • Categories: Senza categoria