У вас вызов
reader.onloadend = function() {...}
является асинхронным. Поэтому, в момент вызова
console.log()
вне
responseArray.map(blob=> {...})
массив
finalScreenshotsArray
все еще пуст.
попробуйте сделать так (пример очень грубый, но для идентификации проблемы вполне годен):
let finalScreenshotsArray = [];
responseArray.forEach(blob=> {
let reader = new FileReader();
reader.readAsDataURL(blob);
let promise = new Promise((resolve, reject) => {
reader.onloadend = function() {
resolve(reader.result);
}
});
finalScreenshotsArray.push(promise);
});
Promise.all(finalScreenshotsArray)
.then(results => {
console.log(results);
});
ЗЫ: код не проверял, на телефоне это достаточно проблематично.