onFinished method

Stream<T> onFinished(
  1. FutureOr<void> callback()
)

Registers a callback to be invoked once the stream is done

Implementation

Stream<T> onFinished(FutureOr<void> Function() callback) {
  var finished = false;
  Future<void> finishedCallback() async {
    if (finished) {
      return;
    }
    finished = true;
    // ignore: discarded_futures
    return await callback();
  }

  return cast<T>().transform(
    DoStreamTransformer<T>(
      onCancel: finishedCallback,
      onDone: finishedCallback,
    ),
  );
}