为什么需要在循环里fetch?

假设有多个设备连接在后端,数量不定,需要按个读回状态,那么就要在循环里fetch了.

此函数非常好用,来自于国内一个作者,时间久了,忘记了来源,抱歉.

export default async function fetchWithTimeout(resource, options = {}) {

  const { timeout = 1000 } = options;

  const controller = new AbortController();

  const id = setTimeout(() => controller.abort(), timeout);

  const response = await fetch(resource, {

    ...options,

    signal: controller.signal,

  });

  clearTimeout(id);

  return response;

}

使用: 

  try {

          for (let i = 0; i < autowindownum.length; i++) {

            const sth = await getAutoWindow(

              serverAddress,

              storeInfo.devicenum,

              autowindownum[i],

              storeInfo.deviceip

            );

           console.log(sth.result);

            setAutoWindow((old) => [

              ...old,

              {

                num: autowindownum[i],

                img: getAutoWindowImage(sth.result[9]),

                statu: getAutoWindowStatu(sth.result[9]),

              },

            ]);

          }

        } catch (error) {

          console.log("error-----------", error);

        }

export async function getAutoWindow(serverAddress, devicenum, channelNum, deviceip) {
  //console.log(serverAddress, devicenum, channelNum, deviceip);
  const options = {
    method: "GET",
    headers: {
      Accept: "application/json",
      "Content-Type": "application/json",
    },
    timeout: 3000,
  };
  const res = await fetchWithTimeout(
    `${serverAddress}/api/v1/measure/autowindow?devicenum=${devicenum}&&channelnum=${channelNum}&&deviceip=${deviceip}`,
    options
  );
  const data = await res.json();
  // console.log(data);
  return data;
}

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

iamtsfw

你的鼓励将是我创作的最大动力

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

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

打赏作者

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

抵扣说明:

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

余额充值