Я написал какую-то асинхронную функцию, которая что-то делает, а потом ничего не возвращает.После того, как функция закончила свое выполнение, я хочу подождать несколько секунд, а затем повторить ту же процедуру.
Процесс выглядит следующим образом: 1. Выполнить функцию 2. Дождаться завершения выполнения 3. Подождите/ Задержитесь в течение некоторого интервала 4. Начните заново с шага 1
Бесконечный цикл выполнения функции, переведите в спящий режим и начните снова.
Теперь мой вопрос: какой из 2 приведенных ниже блоков кода большеподходит для использования:
Вариант 1:
const MEANING_OF_LIFE = 42;
const DELAY_IN_MILLISECONDS = 1000;
const whatsTheMeaningOfLife = async () => {
console.log(MEANING_OF_LIFE);
}
const outter = fn => {
inner = async fn => {
await fn();
setTimeout(() => outter(fn), DELAY_IN_MILLISECONDS);
};
inner(fn);
};
(() => {
outter(whatsTheMeaningOfLife);
})();
Вариант 2:
const MEANING_OF_LIFE = 42;
const DELAY_IN_MILLISECONDS = 1000;
const whatsTheMeaningOfLife = () => {
console.log(MEANING_OF_LIFE);
}
const sleep = () => {
return new Promise((resolve, ) => {
setTimeout(() => resolve(), DELAY_IN_MILLISECONDS);
});
};
(async () => {
while(true) {
await whatsTheMeaningOfLife();
await sleep();
}
})();