Функция, создающая случайную паузу

Сгенерируйте целое число миллисекунд от 1000 до 5000 включительно и верните Promise, разрешаемый таймером. Такая пауза не блокирует основной поток.

Короткий ответ

Что ответить на собеседовании

Сгенерируйте целое число миллисекунд от 1000 до 5000 включительно и верните Promise, разрешаемый таймером. Такая пауза не блокирует основной поток.

Подробный разбор

Ответ с пояснениями

Условие

Функция генерирует задержку с длительностью в диапазоне от 1000 до 5000 миллисекунд.

Ответ

Сгенерируйте целое число миллисекунд от 1000 до 5000 включительно и верните Promise, разрешаемый таймером. Такая пауза не блокирует основной поток.

function randomDelay() {
  const ms = 1000 + Math.floor(Math.random() * 4001);
  return new Promise(resolve => setTimeout(() => resolve(ms), ms));
}

await randomDelay() ожидает номинальную задержку и получает выбранное значение ms. Реальное время может быть больше из-за занятости event loop или фонового режима вкладки. Math.random подходит для учебной случайной паузы, но не для криптографических задач. Бесконечный синхронный цикл ожидания использовать нельзя.

ИИ-помощник для собеседований

Хочешь уверенно проходить собеседования?

Попробуй ИИ-помощник для собеседований: слышит вас и собеседника, анализирует экран, подсказывает ответы в реальном времени, работает без VPN и не попадает в захват экрана.

Подробнее