You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

基于Async Await的API调用成功后,如何发起带指定参数的二次API调用

实现第一次API成功后发起第二次调用的方案

直接在原函数的API成功响应分支内添加第二次调用逻辑即可,修改后的完整代码如下:

const activeStepOne = async () => {
  const formData = new FormData();
  formData.append("file", csvData);
  formData.append("filetype", fileType);
  
  let postData = { filetype: fileType, file: csvData };
  let getData = { filetype: fileType, file: csvData.name };
  sessionStorage.setItem("uploadDetails", JSON.stringify(getData));
  
  const requestOptions = { 
    method: "POST", 
    body: formData 
  };
  
  try {
    let responseData = await callAPI(`${API_URL}/fileupload`, requestOptions);
    
    if (responseData?.status) {
      setDisable(true);
      setActiveStep((prevActiveStep) => prevActiveStep + 1);
      setIsLoading(false);
      setShowSnackbar(false);
      setSnackbarType("success");
      setSnackbarMessage("File uploaded successfully!");
      setShowSnackbar(true);

      // ------------------------------
      // 新增:第一次调用成功后发起第二次API请求
      // ------------------------------
      const secondRequestOptions = {
        method: "POST",
        headers: {
          "Content-Type": "application/json"
        },
        body: JSON.stringify({
          Upload: "True",
          Name: "Bolzen",
          WorkflowName: "file1.csv",
          UserId: 1
        })
      };

      try {
        const secondResponse = await callAPI(`${API_URL}/your-second-api-path`, secondRequestOptions);
        if (secondResponse?.status) {
          // 二次调用成功的处理逻辑
          setSnackbarMessage("二次操作执行成功!");
          setSnackbarType("success");
          setShowSnackbar(true);
        } else {
          setSnackbarMessage("二次操作失败,请重试");
          setSnackbarType("error");
          setShowSnackbar(true);
        }
      } catch (secondError) {
        console.error("第二次API调用出错:", secondError);
        setSnackbarMessage("二次操作请求异常");
        setSnackbarType("error");
        setShowSnackbar(true);
      }
      // ------------------------------
      // 新增逻辑结束
      // ------------------------------

    } else {
      setStatusCode(true);
      setIsLoading(false);
      setSnackbarMessage( "Error uploading file. Please try again with proper data." );
      setSnackbarType("error");
      setShowSnackbar(true);
    }
    console.log(responseData);
  } catch (firstError) {
    // 捕获第一次API调用的异常
    setIsLoading(false);
    setSnackbarMessage("文件上传请求异常");
    setSnackbarType("error");
    setShowSnackbar(true);
    console.error("第一次API调用出错:", firstError);
  }
};

关键修改说明

  • 请求配置:第二次调用发送JSON格式参数,必须设置Content-Type: application/json请求头,同时通过JSON.stringify()将参数对象转为JSON字符串作为请求体
  • 错误隔离:用独立的try-catch包裹第二次调用,避免二次请求失败影响第一次请求的成功状态反馈
  • 端点替换:将代码中的${API_URL}/your-second-api-path替换为实际的第二次API接口地址
  • 状态反馈:根据二次调用的结果更新提示信息,确保用户能感知到每一步操作的状态

内容的提问来源于stack exchange,提问作者ION

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.19 20:26:16