next<R> method

  1. @Deprecated("use thenNext instead")
Cancelable<R> next<R>({
  1. FutureOr<R> onValue(
    1. O value
    )?,
  2. FutureOr<R> onError(
    1. Object error
    )?,
})

Implementation

@Deprecated("use thenNext instead")
Cancelable<R> next<R>({
  FutureOr<R> Function(O value)? onValue,
  FutureOr<R> Function(Object error)? onError,
}) {
  final resultCompleter = Completer<R>();
  _completer.future.then((value) {
    try {
      _completeValue(
        completer: resultCompleter,
        value: onValue?.call(value),
      );
    } catch (error) {
      _completeError(
        completer: resultCompleter,
        onError: onError,
        e: error,
      );
    }
  }, onError: (Object e) {
    if (e is! CanceledError) {
      _completeError(
        completer: resultCompleter,
        onError: onError,
        e: e,
      );
    }
  });
  return Cancelable(
    resultCompleter,
    onCancel: () {
      _onCancel?.call();
      _completeError(
        completer: resultCompleter,
        e: CanceledError(),
        onError: onError,
      );
    },
    onPause: _onPause,
    onResume: _onResume,
  );
}