簡體   English   中英

我怎樣才能添加一個for循環來停止無限循環

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM