values method

  1. @override
FutureOr<List<V>> values({
  1. Duration? timeout,
  2. bool refresh = false,
})
override

Returns all the values.

Implementation

@override
FutureOr<List<V>> values({Duration? timeout, bool refresh = false}) {
  var now = DateTime.now();

  if (refresh) {
    var values = _sharedMap.values();
    return _cacheValues(values, now);
  }

  var valuesCached = _valuesCached;
  if (valuesCached != null) {
    timeout ??= this.timeout;

    var elapsedTime = now.difference(valuesCached.$1);
    if (elapsedTime <= timeout) {
      return valuesCached.$2;
    }
  }

  var valuesAsync = _valuesAsync;
  if (valuesAsync != null) {
    return valuesAsync;
  }

  var values = _sharedMap.values();
  return _cacheValues(values, now);
}