cancel method

  1. @override
Future<void> cancel()
override

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();
    });