【发布时间】:2017-04-25 03:22:18
【问题描述】:
在 Angular 1.6.0 之前,我们有一个用于解决 Angular 应用程序中的 Promise 的模式:
resource.get().$promise
.then(function (response) {
// do something with the response
}, function (error) {
// pass the error the the error service
return errorService.handleError(error);
});
下面是我们在 Karma 中触发错误的方式:
resourceMock.get = function () {
var deferred = $q.defer();
deferred.reject(error);
return { $promise: deferred.promise };
};
现在,随着 1.6.0 的更新,Angular 在我们的单元测试中(在 Karma 中)突然抱怨被拒绝的承诺,并出现“可能未处理的拒绝”错误。但是我们在调用错误服务的第二个函数中处理拒绝。
Angular 到底在寻找什么?它希望我们如何“处理”拒绝?
【问题讨论】:
-
我在我们的代码库中也注意到了这一点。奇怪的是,使用 chrome 启动器运行该套件可以正常工作。抱怨的是 PhantomJS。
-
如果你得到这个并且不只是升级,这里是你如何检查你的 Angular 版本:stackoverflow.com/questions/16017699/…
-
接受的答案建议隐藏错误。重复项建议使用this answer 提供更强大的替代方案。
标签: javascript angularjs karma-runner angular-promise angularjs-1.6