J'essaye de télécharger un tableau de fichiers en utilisant FileReader qui sont encodés en base64 et stockés dans un tableau pour un traitement ultérieur. J'ai du mal à comprendre le modèle que j'ai besoin de créer afin de m'assurer que tous les fichiers ont été téléchargés car je dois attendre que le gestionnaire d'événement onload se déclenche. Par exemple;Angular2: tableau de téléchargement asynchrone de fichiers
Si je transmets un tableau de fichiers à la fonction suivante, il résoudra la promesse avant que les fichiers ne soient réellement téléchargés.
localUploads(event) : any {
var response = [];
return new Promise(function(resolve, reject) {
//Retrieve all the files from the FileList object
var files = event.target.files;
var response = [];
if (files) {
for (var i=0, f; f=files[i]; i++) {
var r = new FileReader();
r.onload = (function(f) {
return function(e) {
let contents = e.target['result'];
let file = {
name: f.name,
asset: contents,
private: false
};
console.log('we are pushing into the array');
response.push(file);
};
})(f);
}
resolve(response);
}
r.readAsText(f);
});
}
Quelqu'un peut-il s'il vous plaît aviser un novice?
Merci beaucoup.