cancel method Null safety

void cancel(
  1. [dynamic reason]
)

Implementation

void cancel([dynamic reason]) {
  if (_state == SMHTaskState.success) {
    return;
  }
  _state = SMHTaskState.canceled;
  stateStream.add(_state);
  SMHTaskInfo info = getTaskInfo();
  if (info.cancelToken?.isCancelled == false) {
    try {
      info.cancelToken?.cancel(reason);
    } catch (_) {}
  }
  if (finishCalBack != null) {
    SMHError smhError = SMHError();
    smhError.smhCode = 'Cancelled';
    smhError.smhMessage = 'cancelled';
    smhError.smhZhMessage = '取消';
    smhError.error = reason;
    finishCalBack!(null, smhError);
  }

  /// 取消下载 删除本地临时文件。
  if (getTaskInfo().option == SMHTaskOption.download) {
    try {
      File(getTaskInfo().localPath).delete();
    } catch (_) {}
  }

  currentQueue?.onTaskFinishHandle(this);
  currentQueue = null;
  receivePort.close();
  isolate.kill();
}