Как переписать это на async\await + promise? Проблема в том, что при выходе из функции ещё ни разу не срабатывает событие onload и всегда возвращается пустой массив files, просто не успевают отработать асинхронные методы:
function getFilesFromGalery() {
var files = [];
for (let i = 0; i < document.getElementById('gallery').childNodes.length; i++) {
var xhr = new XMLHttpRequest();
var imgUrl = document.getElementById('gallery').childNodes[i].src;
xhr.responseType = 'blob';
xhr.open('GET', imgUrl);
xhr.onload = function(e) {
if (this.status == 200) {
var myBlob = this.response;
var filename = 'file_'+ i + '.' + GetFileName(imgUrl);
var file = new File([myBlob], filename, {type: 'image/' + GetDataType(imgUrl)});
files.push(file)
}
};
xhr.send();
}
return files;
}
А мне в результате нужен именно массив файлов =( Да я знаю, что можно обработать каждый файл отдельно прям в onload, но это мне не подходит. Помогите пожалуйста.