The completer manipulates the future returned by future.
@protected final completer = Completer<TResult>();