繁体   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