Делает ли toDataURL (или подобный метод) ожидание, пока не завершится l oop, затем отображает накопленные данные или делает это всякий раз, когда данные готовы обратно на страницу.
function onFileSelect(event) {
for (i = 0; i < event.target.files.length; i++) {
var thefile = event.target.files[i];
let img = document.getElementById('img' + i);
var reader = new FileReader();
reader.onload = function(e) {
....
img.src = canvas.toDataURL();
};
reader.readAsDataURL(thefile);
}
}