Felix Riesterer: Warum steht Variable in Funktion nicht zur Verfügung (Frage zum Wiki-Artikel „File Upload“)

Beitrag lesen

problematische Seite

Lieber Rolf,

Variablen mit var werden "gehoben", d.h. i, f, test und reader werden behandelt, als wären sie vor der Schleife deklariert worden.

das wäre alles nicht der Rede wert, wenn man anstelle einer Schleife mit Array.forEach gearbeitet hätte.

Ein typischer Fall, bei dem es sich lohnt, von alten Gewohnheiten Abstand zu nehmen. Wir hatten das schon einmal...

Im vorliegenden Fall könnte das dann so (oder so ähnlich) aussehen:

function dateiauswahl(evt) {

  evt.target.files.forEach(aFileInput => {
    const reader = new FileReader();

    reader.readAsText(aFileInput);

    reader.onload = function() {
      console.log(reader.result);
    }

    reader.onerror = function() {
      console.log(reader.error);
    };
  });
}

Liebe Grüße

Felix Riesterer