欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 文旅 > 美景 > 为什么需要在循环里fetch?

为什么需要在循环里fetch?

2025/7/11 18:29:52 来源:https://blog.csdn.net/iamtsfw/article/details/148128412  浏览:    关键词:为什么需要在循环里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;
}

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

热搜词