[英]how can i add a for loop to stop infinite loop
我想讓這段代碼在出現錯誤 10 次后繼續嘗試,在 10 次之后它應該停止嘗試而不是嘗試它會顯示一條消息而不是有問題,所以我故意在那里拋出一個錯誤它會給出錯誤和一個 for 循環,但它會繼續嘗試單獨的錯誤消息,如下圖所示,那么我如何添加那個 for 循環,以便它可以停止嘗試運行 function 並顯示一條消息?
這是我的代碼:
async function getQuote() {
loading();
const apiUrl = 'https://cors-anywhere.herokuapp.com/http://api.forismatic.com/api/1.0/?
method=getQuote&format=json&lang=en';
try {
const response = await fetch(apiUrl)
const data = await response.json();
// Changing the blank Author textfield to Unknown
if (data.quoteAuthor === ''){
authorText.innerText = 'Unknown';
} else {
authorText.innerText = data.quoteAuthor;
}
if (quoteText.innerText.length > 120){
quoteText.classList.add('long-quote');
} else {
quoteText.classList.remove('long-quote');
}
quoteText.innerText = data.quoteText
//Stop loader, Show Quote
complete();
throw new Error("Opss!")
} catch(error) {
for(let i=0; i < 10 ; i++){
getQuote();
// console.log('something went wrong!', error);
}
}
}
您可以嘗試構建一個全局變量來計算錯誤的數量並在一定數量時跳出循環
async function getQuote(numOfTries = 1) {
try {
...
throw new Error("Opss!")
}
catch (error) {
if (numOfTries === 10) {
console.log('something went wrong!', error);
} else {
numOfTries++;
getQuote(numOfTries);
}
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.