Асинхронный memoize с TTL

Hard
PromiseCacheAsyncOzon

Реализуйте функцию asyncMemoize(fn, ttl), которая кеширует результат асинхронной функции fn на ttl миллисекунд.

  • Ключ кеша — JSON.stringify(args)
  • Повторный вызов с теми же аргументами до истечения TTL возвращает кешированный результат
  • После истечения TTL функция вызывается заново
const memoFetch = asyncMemoize(fetchData, 5000);
await memoFetch("url"); // вызов fn
await memoFetch("url"); // из кеша

Примеры

Пример 1
Вход:
asyncMemoize(fn, 5000)
Выход:
Кеширует результат на 5с
Ваш код - JavaScript
Результаты
Нажмите «Запуск» для выполнения кода