cancel method
Cancels the pending or in-progress operation.
Multiple calls to this method should have the same result. In other words, it should be idempotent.
Implementation
@override
Future<void> cancel() => _cancelMemo.runOnce(() async {
if (operation.isCanceled || operation.isCompleted) {
logger.verbose('Operation complete. Calling onCancel...');
return _onCancel?.call();
}
logger.verbose('Operation canceled.');
return operation.cancel();
});