Сгенерируйте целое число миллисекунд от 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 подходит для учебной случайной паузы, но не для криптографических задач. Бесконечный синхронный цикл ожидания использовать нельзя.