异步的思考

文章展示了在React中如何实现一个接口请求完成后调用另一个接口的逻辑。使用useEffectHook获取数据,当`visible`状态改变时,查询流程实例并更新发布检查状态。数据处理涉及查找特定类型节点,更新表单状态,并通过fetchAPI进行数据操作。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

直接上代码 两个接口 等一个接口掉完调用另一个的写法

 const [pipelineInstance, { wrapRequset: requestPipelineInstance }] =
    useLoading<typeof getPipelineInst>(getPipelineInst);// 接口

const changedata = res => {
    const bizIdData = res?.nodeInsts?.find((item) => {
      return item?.nodeType === PipelineNodeType?.PUBLISH_CHECK;
    });
    const simulateId = bizIdData?.bizId
    setsimulateId(simulateId)
    res?.nodeInsts.map(item => {
      if (item?.nodeType === "PUBLISH_CHECK") {
        setuseLoading(true)
        fetchAPI(
          API_dpchangeguardian_whiteListV1Rest_postInsertWhiteList,
        ).request({}, {
          conditions: {
            whiteListObject: {
              like: `%${simulateId}%`
            }
          },
          orderBys: [{
            field: 'id',
            asc: false
          }]
        }).then?.((data) => {
          item?.detailResult?.forms[0].rows.forEach(items => {
            const result = data?.find(item => item?.ruleInstanceId == items?.cells?.[2]?.operations?.[0]?.operationValue?.ruleInstanceId);
            if (result) {
              items.cells[2].operations[0].operationValue.status = result.status;
              items.cells[2].operations[0].operationValue.bmpsApproveUrl = result.bmpsApproveUrl;
            }
          });
          setuseLoading(false)
        })
      }
    })
  }

useEffect(() => {
    if (visible) {
      /** 查询任务最新的流程实例 */
      requestPipelineInstance(submittedObject, isproduct).then(data => {
        changedata(data)// 更新publine状态
      });
      requestChangeImpactInfo(submittedObject);
    }
  }, [visible]);
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值