创建一个调用API的循环,如果出现错误,则重试3次



所以就像标题中说我试图创建一个调用API的javascript循环一样,如果返回数据,它会设置let变量并跳出循环,但如果出错,它会重试3次。我在谷歌上搜索了一下,发现了以下内容,但不起作用,我不明白为什么?

let data
const maxTries = 3
for (let i = 0; i <= maxTries; i++) {
try {
data = await getJson(url, true)
if (data) {
return data
}
} catch (err) {
console.error(err)
throw err
}
}
var maxRetries  = 3
async fetchAndRetryOnError(url, requestOption, maxRetries = 3) {
let response = await fetch(url, requestOption);
let retries = 0
while (!response.ok && response.status != 400 && retries < maxRetries) {
console.log(response.status);
await sleep(1000 + 1000 * 2 ** retries)
retries += 1
response = await fetch(url, requestOption);
console.log(`Retry nr. ${retries} result: ${response.ok}`)
}
return response
}
async send() {
let url = `your url`;
let requestOption = "" // header or body of req.
return await this.fetchAndRetryOnError(url, requestOption);
}

throw将停止所有操作。您可能只想执行console.error

相关内容

最新更新