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

Аватар пользователя Ivan Gagarinov
Ivan Gagarinov
4 дня назад

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

Синтаксис

setTimeout(function, delay, param1, param2, ...);

где:

  • function — это функция, которая будет выполнена после задержки.
  • delay — время задержки в миллисекундах.
  • param1, param2, ... — дополнительные параметры для переданной функции (необязательные).

Пример использования

Вот простой пример того, как использовать setTimeout для выполнения кода с задержкой:

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

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

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

Описание работы кода

  1. Сначала выводится "Начало".
  2. Затем устанавливается таймер на 2 секунды.
  3. В это время выводится "Конец".
  4. Через 2 секунды после вызова setTimeout появится сообщение.

Прерывание таймера

Иногда может возникнуть необходимость отменить выполнение функции, запланированной с помощью 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();

Заключение

Функция setTimeout — мощный инструмент для управления временными задержками в JavaScript. Она может быть использована просто для отложенного выполнения кода или в более сложных случаях для создания таймеров, отмены выполнения кода, а также в асинхронных операциях с использованием промисов и async/await.

0 0

Есть что добавить? Зарегистрируйтесь

или войдите в аккаунт

Отправляя форму, вы принимаете «Соглашение об обработке персональных данных» и условия «Оферты», а также соглашаетесь с «Условиями использования»

Курсы по программированию в Хекслете

Программирование

Веб-разработка

Разработка, верстка и деплой сайтов и веб-приложений, трудоустройство для разработчиков

Frontend-разработка

Разработка внешнего интерфейса сайтов и веб-приложений и верстка

Создание сайтов

Разработка сайтов и веб-приложений на JS, Python, Java, PHP и Ruby on Rails

Backend-разработка

Разработка серверной части сайтов и веб-приложений

Тестирование

Ручное тестирование и автоматизированное тестирование на JS, Python, Java и PHP

Аналитика данных

Сбор, анализ и интерпретация данных на Python

Интенсивные курсы

Интенсивное обучение для продолжающих

DevOps

Автоматизация настройки локального окружения и серверов, развертывания и деплоя

Математика для программистов

Обучение разделам математики, которые будут полезны при изучении программирования

JavaScript

Разработка сайтов и веб-приложений и автоматизированное тестирование на JS

Тест-драйв

Python

Веб-разработка, автоматическое тестирование и аналитика данных на Python

Java

Веб-разработка и автоматическое тестирование на Java

PHP

Веб-разработка и автоматическое тестирование на PHP

Ruby

Разработка сайтов и веб-приложений на Ruby on Rails

Go

Курсы по веб-разработке на языке Go

Верстка

HTML

Современная верстка с помощью HTML и CSS

SQL

Проектирование базы данных, выполнение SQL-запросов и изучение реляционных СУБД

Git

Система управления версиями Git, регулярные выражения и основы командой строки

Бесплатные курсы

Бесплатные курсы по тестированию, дата-аналитике, верстке, программированию на Python, Java, PHP и JavaScript.

Базы данных

Фреймворки