Вы можете сделать обратный вызов тайм-аута, который рекурсивно вызывает сам себя:
function x() {
const array = [1, 2, 3, 4, 5, 6, 7, 8].slice(0, 5);
function callback() {
console.log(array.pop());
if (array.length) setTimeout(callback, 1000); // change to 5000 in your actual code
}
callback();
}
x()
Другой вариант, await
использование обещания, которое разрешается через несколько секунд внутри l oop:
const delay = ms => new Promise(res => setTimeout(res, ms));
async function x() {
const array = [1, 2, 3, 4, 5, 6, 7, 8].slice(0, 5);
for (const item of array.reverse()) {
console.log(item);
await delay(1000);
}
}
x()