thenNext<R> method
Implementation
Cancelable<R> thenNext<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(
completer: resultCompleter,
task: _task,
onCancel: () {
_onCancel?.call();
_completeError(
completer: resultCompleter,
e: CanceledError(),
onError: onError,
);
},
onPause: _onPause,
onResume: _onResume,
);
}