I have the following code which reads a the contente of a file line by line.
document.getElementById('file').onchange = function() {
var file = this.files[0];
var reader = new FileReader();
reader.onload = function(progressEvent) {
var fileContentArray = this.result.split(/\r\n|\n/);
for (var line = 0; line < fileContentArray.length - 1; line++) {
console.log(line + " --> " + fileContentArray[line]);
}
};
reader.readAsText(file);
};
I know that the code to delay in JS it´s
setTimeout(function() {
}, 1000)
I want to show line by line but with a delay of 1 sec between lines
But I´ve already to put it before the for loop and it doesn´t work.
You can use setInterval to execute your function in an interval.
Also don't forget to clearInterval when the condition meets, or else the function will be non stop
Sample Code
document.getElementById('file').onchange = function () {
var file = this.files[0];
var reader = new FileReader();
reader.onload = function (progressEvent) {
var fileContentArray = this.result.split(/\r\n|\n/);
let index = 0;
const interval = setInterval(function() {
console.log(index + " --> " + fileContentArray[index]);
++index;
if (index === lines.length) {
clearInterval(interval);
}
}, 1000)
};
reader.readAsText(file);
};