我正在尝试获取请求,如果请求花费的时间比指定的超时时间长,那么我将使用中止控制器中止它,或者如果响应中出现错误(例如套接字挂起),则尝试再次递归地获取它。我想重复它,即 5 次,最后如果失败则返回错误。但在我的代码中,第一次尝试后它立即失败并显示获取请求已中止。这是我的代码。先感谢您。
const getData = async () => {
let url = `https://www.example.com`
let options = {
method: 'POST',
agent: proxyagent,
signal: signal,
body: JSON.stringify({
username: 'abc'
})
}
const fetchData = async (retries) => {
try {
let timer = setTimeout(() => controller.abort(), 1000)
let response = await fetch(url, options)
clearTimeout(timer)
if (response.ok) return response.json()
} catch (e) {
console.log(e)
if (retries === 1 || retries < 1) {
return {
message: 'Something went wrong'
}
}
return …Run Code Online (Sandbox Code Playgroud)