Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/376.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 角度1.6.1“;可能未经处理的拒绝”;使用.finally()时_Javascript_Angularjs_Promise - Fatal编程技术网

Javascript 角度1.6.1“;可能未经处理的拒绝”;使用.finally()时

Javascript 角度1.6.1“;可能未经处理的拒绝”;使用.finally()时,javascript,angularjs,promise,Javascript,Angularjs,Promise,当我使用.finally()处理一个承诺时,我会得到这个“可能未处理的拒绝”错误,因此我必须使用冗余的.then()和.catch(),内部代码相同。这是一个错误还是有一个正确的方法来处理这个拒绝 const deferred = $q.defer(); deferred.promise.finally(() => {}); deferred.reject(); 以下是承诺的.最终与try块中的最终具有相同的行为/意图 如果你写: try { throw new Error('tes

当我使用.finally()处理一个承诺时,我会得到这个“可能未处理的拒绝”错误,因此我必须使用冗余的.then()和.catch(),内部代码相同。这是一个错误还是有一个正确的方法来处理这个拒绝

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

以下是承诺的.

最终与try块中的最终具有相同的行为/意图

如果你写:

try {
  throw new Error('test') // do some stuff
} finally {
  console.log('finally')
}
然后执行
console.log('finally')
,但之后代码将停止并显示:

未捕获错误:测试


承诺也是如此,您可以使用
finally
来执行代码,不管承诺是实现了还是被拒绝了,但是您仍然需要使用
catch
回调来处理拒绝

请查看@Santoshinde,问题不是为什么报告不同的错误,然后是用于拒绝承诺的错误,这在给定代码中是
未定义的
,而是为什么OP在使用
最终
时收到未处理的拒绝警告。