簡體   English   中英

處理ajax錯誤並執行promise鏈

[英]Handle ajax errors and execute the promise chain

我正在嘗試為失敗的 ajax 請求提供后備。 我想要一個全局解決方案,這樣我就不必更改代碼中的每個調用。

我嘗試為ajaxSetup提供error處理程序,但問題是我無法執行鏈接的回調。

 $.ajaxSetup({ error: function() { console.error('Error occurred') return $.getJSON('https://jsonplaceholder.typicode.com/todos/1') } }) $.getJSON('https://jsonplaceholder.typicode.com/todos/0') // Id doesn't exist .then(todo => console.log(todo))
 <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>

預期輸出

Error occurred
{
  "id": 1,
  "title": "...",
  ...
}

從 jQuery 3.0 開始,接受的回調方法是:done、always、fail。 所以,我會調用回調失敗,在內部,我重新發送包裝成具有動態 id 的正確函數的 ajax 調用

const submit = (id) => {
      const xhr = $.getJSON(`https://jsonplaceholder.typicode.com/todos/${id}`)
         .done(todo => console.log(todo))
         .fail(err => { console.error(err); submit(id++); });
};

submit(0);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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