You can use an incremental timeout for different text. They will print in the different timelines.
var cars = ["Saab", "Volvo", "BMW"];
cars.forEach((car, index) => {
setTimeout(function loop() {
document.getElementById("text").innerHTML = car;
}, index * 2000)
})
<h1 class="name" id="text"></h1>
If you want to learn async programming, You can do the same thing using async-await. Please have a look below example.
// Print function which prints after 1 sec.
const print = (car) => {
return new Promise(resolve => {
setTimeout(() => {
// Print here
document.getElementById("text").innerHTML = car;
resolve()
}, 1000)
})
}
// Main function, Now consume it
async function main() {
var cars = ["Saab", "Volvo", "BMW"];
for (let index = 0; index < cars.length; index++) {
await print(cars[index])
}
}
main()
Working sample:
const print = (car) => {
return new Promise(resolve => {
setTimeout(() => {
// Print here
document.getElementById("text").innerHTML = car;
resolve()
}, 1000)
})
}
async function main() {
var cars = ["Saab", "Volvo", "BMW"];
for (let index = 0; index < cars.length; index++) {
await print(cars[index])
}
}
main()
<h1 class="name" id="text"></h1>