get method Null safety

Future<V> get(
  1. K key
)

Get the value identified by key. If this is called with a key that is equivalent to one that is currently being loaded, a identical Future identical to the one returned for the prior call will be returned.

Implementation

Future<V> get(K key) => _pending.update(key, (v) => v, ifAbsent: () async {
      try {
        return await create(key);
      } finally {
        final check = _pending.remove(key);
        assert(check != null);
        // This finally block guaranteed to execute after the Future created
        // by the ifAbsent function has been stored in _pending, because
        // the await in the try block always suspends the function.
        // See the Dart language specification, version 2.10, section 17.33
        // (https://dart.dev/guides/language/specifications/DartLangSpec-v2.10.pdf).
      }
    });