Доброго времени суток!
Задача получить из массива с файлами изображений объекты base64.
Есть простенький кусок кода стянутый с стековера:
function getBase64(file) {
var reader = new FileReader();
reader.readAsDataURL(file);
reader.onload = function () {
console.log(reader.result);
return reader.result; //добавляем возврат из функции
};
reader.onerror = function (error) {
console.log('Error: ', error);
};
}
и пробуем прогнать массив через эту функцию, например так:
//массив с картинками доступен в переменной test
function getArray(){
var newArray=[];
for(var i=0; i<test.length; i++){
newArray.push(getBase64(test[i]));
}
return newArray;
}
Конечно возвращается пустой массив, т.к. функции не дожидаются завершения события onload и выполняются возвращая в массив undefined. Можно ли сохраняя текущий подход как-то дождаться завершения чтения файла и только тогда продолжить выполнения функций? Ну или другим методом добиться искомого результата?