【问题标题】:Angular 1.6.1 "Possibly unhandled rejection" when using .finally()使用 .finally() 时 Angular 1.6.1“可能未处理的拒绝”
【发布时间】:2017-01-09 04:38:01
【问题描述】:

当我用 .finally() 处理一个承诺时,我得到这个“可能未处理的拒绝”错误,所以我必须使用冗余的 .then() 和 .catch() 而不是 .finally ,其中包含相同的代码。这是一个错误还是有正确的方法来处理这种拒绝?

const deferred = $q.defer();
deferred.promise.finally(() => {});
deferred.reject();

这是fiddle

【问题讨论】:

标签: javascript angularjs promise


【解决方案1】:

promise 的 finallytry 块中的 finally 具有相同的行为/意图。

如果你写:

try {
  throw new Error('test') // do some stuff
} finally {
  console.log('finally')
}

然后console.log('finally') 被执行,但之后代码会以:

未捕获的错误:测试

Promises 也是一样,你可以使用finally 来执行代码,不管promise 是被实现还是被拒绝,但是你仍然需要使用catch 回调来处理拒绝。

【讨论】:

    猜你喜欢
    • 2017-05-07
    • 1970-01-01
    • 1970-01-01
    • 2017-04-25
    • 1970-01-01
    • 2016-11-24
    • 2017-11-02
    • 2018-02-27
    • 1970-01-01
    相关资源
    最近更新 更多