|author||Nate Bosch <firstname.lastname@example.org>||Tue May 11 16:50:38 2021 -0700|
|committer||GitHub <email@example.com>||Tue May 11 16:50:38 2021 -0700|
Make isComplete reflect result availability (#178) Fixes #176 Change the `CancelableOperation.isComplete` to forward to the `_inner` completer, which is not completed until the result is available unlike `CancelableOperation.isComplete` which may lead the result when `complete` is called with a `Future` argument. Update the docs to reflect the new behavior. Keep the detail about this property indicating whether the operation can still be canceled. This detail was incorrectly stated before, but matches the new implementation. Remove details pointing to `CancelableCompleter` from the `CancelableOperation` docs. Flesh out the docs on the completer so that the distinction between the two `isComplete` getters is more clear. Remove a detail about not returning `null` from the `cancel()` doc since the non-nullable return type already makes this clear.
Contains utility classes in the style of
dart:async to work with asynchronous computations.
AsyncCache class allows expensive asynchronous computations values to be cached for a period of time.
AsyncMemoizer class makes it easy to only run an asynchronous operation once on demand.
CancelableOperation class defines an operation that can be canceled by its consumer. The producer can then listen for this cancellation and stop producing the future when it's received. It can be created using a
The delegating wrapper classes allow users to easily add functionality on top of existing instances of core types from
dart:async. These include
FutureGroup class makes it easy to wait until a group of futures that may change over time completes.
LazyStream class allows a stream to be initialized lazily when
.listen() is first called.
NullStreamSink class is an implementation of
StreamSink that discards all events.
RestartableTimer class extends
Timer with a
Result class that can hold either a value or an error. It provides various utilities for converting to and from
StreamGroup class merges a collection of streams into a single output stream.
StreamQueue class allows a stream to be consumed event-by-event rather than being pushed whichever events as soon as they arrive.
StreamSplitter class allows a stream to be duplicated into multiple identical streams.
StreamZip class combines multiple streams into a single stream of lists of events.
This package contains a number of
SingleSubscriptionTransformer converts a broadcast stream to a single-subscription stream, and
typedStreamTransformer casts the type of a
Stream. It also defines a transformer type for
SubscriptionStream class wraps a
StreamSubscription so it can be re-used as a