在Angular应用程序中,我们有一个解决承诺的模式,直到Angular 1.6.0为止,我们的服务一直很好:
resource.get().$promise .then(function (response) { // do something with the response }, function (error) { // pass the error the the error service return errorService.handleError(error); });
这就是我们如何触发业力中的错误:
resourceMock.get = function () { var deferred = $q.defer(); deferred.reject(error); return { $promise: deferred.promise }; };
现在,随着更新至1.6.0,Angular突然在我们的单元测试中(在Karma中)抱怨带有“可能未处理的拒绝”错误的拒绝承诺。但是,我们正在处理第二个调用错误服务的函数中的拒绝。
Angular在这里到底要寻找什么?它希望我们如何“处理”拒绝?
尝试将此代码添加到您的配置中。我曾经遇到过类似的问题,这种解决方法可以解决问题。
app.config(['$qProvider', function ($qProvider) { $qProvider.errorOnUnhandledRejections(false); }]);