javascript - 当一个 promise 被拒绝时,让 $q.all 静静地失败

标签 javascript angularjs promise

我正在对一些地址进行地理编码,有时其中一些会失败。我希望能够获得其余结果并忽略失败的结果,以便我可以在 map 上显示其他坐标。目前 $q.all 会在一个被拒绝时调用 errorHandler,所以我失去了其他 promise 的结果。

      $q.all(promises).then(function(coords) {
          for (var j = 0;j<coords.length;j+=1) {
              //success code
          }
      }, function(error) {
        console.log("Failed",error.type,error.message);
      });

最佳答案

Interrobang 建议的解决方案很好(减去 bug),但如果您不喜欢装饰器影响代码中的每一个 promise ,您可以获得类似于 allSettled 的东西:

var suppress = function(x) { return x.catch(function(){}); } 
$q.all(promises.map(suppress)).then(function(coords) {
     for (var j = 0; j < coords.length ; j+=1) {
          //coords[j] contains the coords on success or is undefined on failure
      }
});

关于javascript - 当一个 promise 被拒绝时,让 $q.all 静静地失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25630994/

相关文章:

javascript - 错误: [ngRepeat:iexp] Expected expression in form of '_item_ in _collection_[ track by _id_]' but got '(name,surname)in controller.students'

angularjs - 延期 promise 不延期

ios - 从 PromiseKit/Alamofire 返回一个 Promise

javascript - 使用 javascript 将 xml 作为二进制文件发布

javascript - ASP.NET MVC 中的 TDD/BDD JavaScript 适用于多个浏览器引擎

javascript - Angularjs - json内容不显示

javascript - 如何将其他变量传递到 Javascript 中的 Firebase promise 回调中?

javascript - 子菜单隐藏在 PDF 类型对象后面(Internet Explorer 中的问题)

javascript - Uncaught ReferenceError : Chart is not defined

javascript - Angularjs + Bootstrap : Google Page Insight test