cursor-处理请求异步问题(2)

代码部分:

// 控仅进入页面或者切换站点时调用fetchDataAndInitGraph方法一次
let areaOnlyOnce = true

watch(() => [station.value, areaDateType.value, areaDate.value], async (val) => {
  await handleAreaSearch()

  if (areaOnlyOnce) {
    // 取区域能耗排名前五的id集合,调用fetchDataAndInitGraph方法
    curAreaIds.value = areaEnergySortData.value.slice(0, 5).map(item => item.id)
    fetchDataAndInitGraph(curAreaIds.value, areaDateType.value, areaDate.value, 6, initAreaGraph)
    areaOnlyOnce = false
  }
})

分析:

        这次主要是来分析这段代码。

        这是vue3中的一个简单的实现监听的功能,station.value, areaDateType.value, areaDate.value其中任意变量变化都会重新执行watch中的代码。

        业务前提声明:

        (1)handleAreaSearch()和fetchDataAndInitGraph()两个方法都是去请求拿数据的,但是后者要基于前者的响应结果然后再去请求,是有先后顺序的。

        (2)另外就是fetchDataAndInitGraph()业务上要求只执行一次。

        所以,实现这两个功能,分别是两件事

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

码农小白-RMS

谢谢老板

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值