Функция с временным лимитом выполнения
Условие задачи
Необходимо написать функцию, которая принимает два аргумента – асинхронную функцию и временной лимит в миллисекундах. Функция должна возвращать новую версию асинхронной функции, выполнение которой ограничено временным лимитом. Должны выполняться следующие условия: • Если время выполнение исходной функции меньше временного лимита, то новая функция должна вернуть результат выполнения асинхронной функции. • Если время выполнение исходной функции больше временного лимита, то новая функция вернуть сообщение “Превышен лимит времени исполнения”.
javascript
const fn = async (n) => {
await new Promise(res => setTimeout(res, 100));
return n * n;
}
asyncLimit(fn, 50)(5); // rejected: Превышен лимит времени исполнения asyncLimit(fn, 150)(5); // resolved: 25
const fn2 = async (a, b) => {
await new Promise(res => setTimeout(res, 120));
return a + b;
}
asyncLimit(fn2, 100)(1, 2); // rejected: Превышен лимит времени исполнения asyncLimit(fn2, 150)(1, 2); // resolved: 3