1unitedpower: XHR und mehrere Progressbars

Beitrag lesen

Jedesmal wenn upload(id) aufgerufen wird, kann die id eine andere sein. Falls der Aufruf in einer Schleife erfolgt, ist id mit Sicherheit eine Andere als die id deren Upload-Prozess noch läuft. Deswegen reicht mein Code die id über Objekteigenschaften durch bis zum jeweiligen EventHandler.

Brauchst du nicht, beim Aufruf von update wird der Parameter id an einen Wert gebunden. Die Variable liegt automatisch auch im lexikalischen Geltungsbereich aller verschachtelten Funktions-Definitionen. In Code ausgedrückt:

function update(id) {
   // ...
   img.onload = function(e){
      // ...
      canvas.toBlob(function(blob) {
         // ...
         xhr.upload.onprogress = function(e) {
            console.log(id); // 42
         }
      }
   }
}
update(42);