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