在我从ngRoute更改为angular-ui-router后,控制台始终显示4个错误:可能未处理的拒绝:{}
我没有注意到任何"问题"在我正在构建的应用程序的行为中,但我想摆脱它。
任何想法是什么意思以及如何解决它?
答案 0 :(得分:22)
此问题可在1.5.9和1.6.0-rc-0中找到。 更多详情请见https://github.com/angular-ui/ui-router/issues/2889
补丁解决方案是手动禁用未处理的拒绝。
app.config(['$qProvider', function ($qProvider) {
$qProvider.errorOnUnhandledRejections(false);
}]);
答案 1 :(得分:1)
如果您查看angular-ui-router文件中uiCanExit的逻辑(我正在使用v1.0.16),它将仅检查已解决的承诺,而不检查被拒绝的承诺。就像这样:
promise.then(function (val) {
return val !== false ? next_transition : current_transition
});
只需返回带有假值的已解决承诺即可取消过渡。 例如,
defer.resolve(false)
答案 2 :(得分:0)
如果您尝试中止转换,请使用false解析promise。
答案 3 :(得分:0)
我使用了下一个解决方案
$http.get('/api/get').then(function(result) {
// ... stuff here
}).catch(angular.noop);
它等于
$http.get('/api/get').then(function(result) {
// ... stuff here
}).catch(function(){});