getCached<T> function

Future<T> getCached<T>({
  1. required String id,
  2. required ValueGetter<Future<T>> getter,
  3. required Duration duration,
})

Implementation

Future<T> getCached<T>(
        {required String id,
        required ValueGetter<Future<T>> getter,
        required Duration duration}) =>
    getLock(id).synchronized(() {
      LazyCache<T> c = (_lazyCaches.containsKey(id)
          ? _lazyCaches[id] as LazyCache<T>
          : LazyCache<T>(id: id, getter: getter, duration: duration));
      _lazyCaches[id] = c;
      return c.get();
    });