orward the result that they don't handle
to their successors, and together they handle both value and error result.
It also has the additional benefit of the <a href="dart-async/Future/catchError.html">catchError</a> handling errors in the
<a href="dart-async/Future/then.html">then</a> value callback too.
Using sequential handlers instead of parallel ones often leads to code that
is easier to reason about.
It also makes asynchronous code very similar to synchronous code:</p>
<pre class="language-dart"><code