javascript - 如果失败但使用不同的参数来获取默认数据,则调用相同的 http 请求

标签 javascript angularjs angular-promise angularjs-service

如果第一个失败但使用不同的参数以返回一些默认数据,那么在 catch 中调用相同的 http 请求调用是否有意义?

var defaultData = false;

clientService.getClients(defaultData)
     .then(function (res) {

         //do something

      }).catch(function (err) {

          defaultData = true;

          clientService.getClients(defaultData)
                .then(function (res) {

                 //do something

                }).catch(function (err) {

                    console.log(err)

                });
      });

或者这是一个糟糕的方法?

最佳答案

确保将新的 promise 返回给捕获处理程序。然后代码将正确链接并避免嵌套:

clientService.getClients({defaultData:false})
 .catch(function (err) {

    return clientService.getClients({defaultData: true})

}).then(function (res) {

    //return something

}).catch(function (err) {

    console.log(err)
    //IMPORTANT re-throw err
    throw err;

});

关于javascript - 如果失败但使用不同的参数来获取默认数据,则调用相同的 http 请求,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51455959/

相关文章:

javascript - 使用 .find 搜索标签内的内容进行 jQuery 搜索

javascript - 指令无法从 "attrs"读取属性

javascript - Observable 成功后如何解析() Promise

javascript - jQuery:水平滚动到div

javascript - 计算无限大父级中 HTML SPAN 的可能宽度?

javascript - 有没有办法在 AngularJs 中使用两个 ng-apps,比如父应用程序和子应用程序?

javascript - 如何在 AngularJS 中为多个 Promise 提供单个最终处理程序?

javascript - 在服务 : this. func 中使用 $timeout 不是一个函数

javascript - Ckeditor allowedContent 未按预期工作

javascript - ng-animate 不让动画完成