Fetch设置超时时间
程序员文章站
2022-06-14 09:42:11
...
/**
*
*
* @param {string} url
* @param {number} 超时时间
* @returns
*/
function request(url,wait=30) {
return new Promise((resolve, reject) => {
let status = 0; // 0 等待 1 完成 2 超时
let timer = setTimeout(() => {
if (status === 0) {
status = 2;
timer = null;
reject("超时");
}
}, 3000);
fetch(url, {
headers: {
"content-type": "application/json"
}
})
.then(res => res.json())
.then(res => {
if (status !== 2) {
clearTimeout(timer);
resolve(res);
timer = null;
status = 1;
}
});
});
}
request("/test")
.then(res => {
document.body.innerHTML =
typeof res !== "string" ? JSON.stringify(res) : res;
})
.catch(err => {
console.log("err", err);
});
上一篇: 你教过几个男朋友?
下一篇: linux kafka安装配置