Функция wait() в JavaScript: как заставить ваш код ждать?

JavaScript — это язык программирования, который позволяет создавать интерактивные веб-сайты. Одна из особенностей JavaScript — это возможность ожидания перед выполнением кода. Эта функция может быть полезна, когда необходимо отложить выполнение кода до тех пор, пока не будет выполнено конкретное условие.

В этой статье мы расскажем вам о функции wait() и о том, как максимально эффективно использовать ее в веб-проектах. Мы также рассмотрим несколько альтернатив, которые можно использовать на ваших веб-сайтах.

Что такое функции wait() в JavaScript?

Функция wait() — это встроенная функция JavaScript, которая приостанавливает выполнение программы на указанное время.

Синтаксис функции wait() следующий:

wait(milliseconds)

Функция wait() принимает один параметр — количество миллисекунд ожидания перед выполнением кода. Например, код ниже будет приостановлен на 1 секунду:

wait(1000);

Функция wait() может быть полезна, если перед запуском кода, вы  вы решите проверить, истинно ли условие или насколько корректна введена форма перед отправкой.

Выполнение функции wait()

Важно понимать, как именно функция wait() работает по отношению к остальной части вашего кода. Функция wait() — это блокирующая функция — это означает, что она будет блокировать выполнение кода, следующего за ней.

Например, рассмотрим следующий код:

console.log(‘Hello, world!’);

wait(1000);

console.log(‘Goodbye, world!’);

В этом коде первое сообщение будет напечатано сразу, второе через 1 секунду. Это произойдет потому, что функция wait() заблокирует выполнение кода, следующего за ней. Код после функции wait() будет выполняться только по истечении указанного времени.

Использование функции wait() с API

Давайте рассмотрим пример использования функции wait() с API. Предположим, вы работаете над проектом, который включает в себя взаимодействие с API, у которого ограничение скорости — 10 запросов в секунду. Если вам необходимо убедиться, что не превысите установленный лимит скорости, вы можете использовать функцию wait().

Ваш код может выглядеть так:

 for (let i = 0; i < 100; i++) {

// Make an API request

wait(100); // Wait for 1/10th of a second

 }

С помощью этого кода будет выполняться 100 запросов API. Мы используем функцию wait(), чтобы убедиться, что в течение 1 секунды не выполняется более 10 запросов.  

Альтернативы функции wait() 

Есть несколько альтернатив функции wait(), которые также могут подойти для вашего веб-проекта.

  • Функция setTimeout() 

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

Синтаксис функции setTimeout() следующий:

setTimeout(function, delay)

Функция setTimeout() принимает два параметра. Первый параметр — это функция, которую нужно выполнить. Второй параметр — это задержка в миллисекундах перед выполнением функции.

Например, следующий код вызовет функцию myFunction() через 1 секунду:

setTimeout(myFunction, 1000);

Функция setTimeout() похожа на функцию wait(), но имеет несколько ключевых отличий:

 

  1. Функция setTimeout() не блокирует — это означает, что код после функции будет выполняться немедленно, вне зависимости от задержки. 
  2. Функция setTimeout() возвращает значение, которое можно использовать для отмены таймера. Это полезно, если вы хотите остановить выполнение кода до того, как истечет задержка.

  • Функция setInterval()

Другой альтернативой является функция setInterval(). Это еще одна встроенная функция JavaScript, которая вызывает функцию или выполняет фрагмент кода с заданными интервалами.

Синтаксис функции setInterval() следующий:

setInterval(function, delay)

Функция setInterval() также принимает два параметра. Первый параметр — это функция, которую нужно выполнить. Второй параметр — это задержка в миллисекундах перед выполнением функции.

Например, следующий код будет вызывать функцию myFunction() каждую 1 секунду:

setInterval(myFunction, 1000);

Как и setTimeout(), функция setInterval() также не блокирует. Она возвращает значение, которое можно использовать для отмены таймера. Отличие в том, что функция setInterval() будет продолжать вызывать функцию с заданными интервалами до тех пор, пока она не будет специально остановлена.

Какую функцию использовать?

Выбор подходящей функции зависит от вашего проекта. Если вам нужно только приостановить программу на определенное время, то функция wait() — это лучший выбор.  Если вам нужно вызвать функцию через заданное время, лучше всего использовать функцию setTimeout(). Но если вам необходимо вызывать функцию через равные промежутки времени — мы рекомендуем использовать функцию setInterval().

Так что, если вы только начинаете работать с JavaScript или ищете лучший способ справиться с ожиданием загрузки страниц, любая из этих функций может быть для вас  полезной.


Источник: hubspot.com 

 

Условия передачи информации

Я даю согласие OOO «ЭсБилдер» (далее «BINN») на обработку моих персональных данных в соответствии со статьями 6, 9, 10, 18 Федерального закона от 27 июля 2006 года № 152-ФЗ «О персональных данных», указанных в онлайн-форме и/или предоставленных мною с целью:

Способы обработки персональных данных могут быть любыми, включая сбор, систематизацию, накопление, хранение, уточнение, обновление, изменение, воспроизведение, обезличивание, блокирование и уничтожение.

Настоящее согласие применяется в отношении обработки следующих данных: имя, номер телефона, адрес электронной почты (E-mail).

Настоящее согласие предоставляется сроком на пять лет. По истечении указанного срока действие согласия считается продленным на каждые следующие пять лет при отсутствии сведений о его отзыве.

Согласие может быть отозвано мною в любой момент путем направления в BINN подписанного мною письменного заявления.