Полезность

В мире веб-разработки нам часто приходится адаптироваться и преодолевать трудности, с которыми мы сталкиваемся. Много раз нам приходится мириться с попытками заняться чем-то, что находится за пределами нашего понимания. Временами это может сильно разочаровывать, когда что-то не работает так, как мы хотим. Как новые разработчики, разбирающиеся во всех тонкостях Vanilla JS, мы можем столкнуться с трудностями в поиске решения. Это то, что я недавно испытал, работая над проектом. Проекту требовалась функция напоминания. Что-то, что может сравнить текущую дату/время с назначенной датой/временем. Было важно, что я правильно подошла к решению этой проблемы. Размышление о том, как это будет работать, заставило меня провести исследование. Здесь я столкнулся с функцией setInterval() и функцией setTimeout(). Эти функции имеют множество приложений. У вас есть возможность постоянно менять свой фон и использовать все эти интересные функции с помощью функций setInterval() и setTimeout(). Я поделюсь тем, как можно использовать эти функции, и как я использовал функцию setInterval(), чтобы удовлетворить мои потребности в моей функции напоминания в моем проекте!

setInterval() и setTimeout()

Эти функции очень похожи, но очень разные. И то, и другое очень полезно, когда речь идет о синхронизированных событиях в Javascript.

  • setInterval() — это метод выполнения кода на основе временного интервала, который имеет встроенную возможность многократно запускать указанный скрипт при достижении интервала. Кроме того, setInterval() зацикливается по умолчанию. Таким образом, нет необходимости зацикливаться с setInterval(). Эта функция работает до тех пор, пока не будет вызвана функция clearInterval(), в которой она прерывает цикл.
function myFunction() {
  let interval = setInterval(mySecondFunction, 3000, param1, param2)
}

function mySecondFunction(param1, param2) {
  return "calls this function every 3 seconds"
}
  • setTimeout() — это метод выполнения кода, основанный на времени, который будет выполнять скрипт только один раз, когда будет достигнут интервал. Эта функция не будет повторяться, если она не будет вызвана внутри цикла. Если поместить в цикл, setTimeout() будет продолжать работать до тех пор, пока не будет вызвана функция clearTimeout().
function myFunction() {
  let interval = setTimeout(mySecondFunction, 3000, param1, param2)
}

function mySecondFunction(param1, param2) {
  return "Hello!"
}

Реализация setInterval() в моем проекте

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

  1. Мне нужно было создать функцию, которая проверяла бы время, чтобы увидеть, соответствует ли оно выбранному времени.
  2. Мне нужен был способ вызывать эту функцию все время, чтобы она всегда проверяла, совпадают ли времена.

Я решил свою проблему, настроив функцию setInterval(), которая вызывала функцию каждую секунду. Эта функция проверит текущую дату/время и увидит, соответствует ли она дате/времени, установленному кем-то для напоминания. Хотя это неэффективно, при работе только с Vanilla JS это может быть единственный способ сделать это. Затем, если установленная дата/время совпадали с фактической датой/временем, я останавливал интервал с помощью clearInterval() и мог отображать всплывающее окно и звуковой аспект для моей функции напоминания.

Myinterval = setInterval(setReminder, 1000, ev, newCard);

if(actualTime == alarmTime && currentActualDate == selectedDate) {
    audio.play();
    endReminder(newCard);
  }

Вывод

Хотя Javascript иногда может быть очень разочаровывающим, есть много методов, которые могут оказаться очень полезными. Функции, которые я рассмотрел в этом блоге, особенно полезны, если есть желание вызывать функцию время от времени или если вам нужно вызвать функцию через определенное время. В любом случае такие функции, как setInterval() и setTimeout(), делают Javascript таким особенным языком для работы. Чем больше вы узнаете о том, как работает Javascript, тем веселее становится программировать с его помощью!