Замыкания. Обратный отсчет в консоли
for (let countdown = 5; countdown > 0; countdown--) {
setTimeout(function () {
console.log(countdown);
}, 1000 * countdown);
}
console.log("поехали");
Как переделать код чтобы выводило вот так:
5 //пауза 1 секунда
4 //пауза 1 секунда
3 //пауза 1 секунда
2 //пауза 1 секунда
1 //пауза 1 секунда
"поехали!"
Ответы (1 шт):
Автор решения: Давид Манжула
→ Ссылка
Тут отлично подойдет async/await
const sleep = ms => new Promise(resolve => setTimeout(resolve, ms));
(async () => {
for (let countdown = 5; countdown > 0; countdown--) {
console.log(countdown);
await sleep(1000);
}
console.log("поехали");
})();
Или вот такой вариант и с таймаутом:
const messages = [
5, 4, 3, 2, 1, "поехали"
];
for (let i = 0; i < messages.length; i++) {
setTimeout(function() {
console.log(messages[i]);
}, 1000 * i);
}