execute method

Future<void> execute()

重试尝试 每一步在失败第一次时将重新尝试.当达到最多尝试次数时,重新开始

Implementation

Future<void> execute() async {
  while (currentStep < 3) {
    Result result = await _performStep(currentStep);
    // 检查结果是否正确
    if (result.isSuccessful) {
      _status = result.status;
      _checkStatusChanged();
    } else {
      // 处理步骤执行失败的情况
      errorCode = result.errorCode;
      int maxRetries = retryCounts[currentStep] ?? 0;
      if (currentRetry < maxRetries) {
        currentRetry++;
        continue;
      } else {
        // 当步骤达到最大重试次数时,重新开始整个流程
        restart();
      }
    }

    // 检查是否应该提前结束整个流程
    if (shouldTerminate) {
      break;
    }

    // 前进到下一个步骤
    currentStep++;
    currentRetry = 0; // 重置当前重试次数
  }
}