be completed in two ways:
with a value ("the future succeeds")
or with an error ("the future fails").
Users can install callbacks for each case.</p>
<p>In some cases we say that a future is completed with another future.
This is a short way of stating that the future is completed in the same way,
with the same value or error,
as the other future once that completes.
Whenever a function in the core library may complete a future
(for example <a href="dart-async/Completer/complete.html">Completer.complete</a> 