Closes the stream.
Listeners receive the done event at a later microtask. This behavior can be
overridden by using sync
controllers. Note, however, that sync
controllers have to satisfy the preconditions mentioned in the
documentation of the constructors.
Future close();