как добавить функцию ожидания или паузы через settimeout в javascript

Аватар пользователя Ivan Gagarinov
Ivan Gagarinov
22 декабря 2024

В JavaScript функция setTimeout позволяет задерживать выполнение определенной функции или кода на заданный промежуток времени (в миллисекундах). Она принимает два аргумента: функцию, которую нужно выполнить, и время ожидания в миллисекундах.

console.log("Начало");

setTimeout(() => {
    console.log("Это сообщение появится через 2 секунды");
}, 2000); // 2000 миллисекунд = 2 секунды

console.log("Конец");

Иногда может возникнуть необходимость отменить выполнение функции, запланированной с помощью setTimeout. Для этого используется clearTimeout.

const timerId = setTimeout(() => {
    console.log("Это сообщение никогда не появится");
}, 2000);

// Отменяем таймер
clearTimeout(timerId);

В этом примере, ввиду вызова clearTimeout(timerId), функция с сообщением не будет выполнена.

setTimeout можно также использовать с асинхронными функциями для создания "паузы" перед выполнением других операций. Вот пример:

function pauseAndRun() {
    console.log("Начало");

    setTimeout(() => {
        console.log("Пауза завершена, продолжаем");
    }, 3000); // Пауза 3 секунды
}

pauseAndRun();

Если вы хотите создать функцию ожидания, которая будет работать с async/await, вы можете обернуть setTimeout в Promise:

function wait(ms) {
    return new Promise(resolve => setTimeout(resolve, ms));
}

async function run() {
    console.log("Ожидание 2 секунды...");
    await wait(2000); // Ждем 2 секунды
    console.log("2 секунды прошли");
}

run();
0 0
Познакомьтесь с основами JavaScript бесплатно