Tag: angular promise

Angular 1.6.0:“可能未处理的拒绝”错误

我们有一个模式来解决我们的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); }); 以下是我们如何触发Karma中的错误: resourceMock.get = function () { var deferred = $q.defer(); deferred.reject(error); return { $promise: deferred.promise }; }; 现在,随着1.6.0的更新,Angular在我们的unit testing(Karma)中突然抱怨拒绝的承诺,并且出现了“可能未处理的拒绝”的错误。 但是,我们正在处理拒绝的第二个函数,调用我们的错误服务。 Angular在这里寻找什么? 它如何要我们“处理”拒绝?

AngularJS:$ q – >事物的延期API顺序(生命周期)和谁调用摘要?

$ q服务在angularjs中非常强大,并且使asynchronous代码更轻松。 我是新angular度,但使用延期的API对我来说并不是很新鲜。 我必须说,我完全确定How to use文档的一部分+有非常有用的链接,在文档+我检出了源。 我的问题是更多关于延迟和承诺的API对象的angular度下的引擎盖部分。 它们生命周期中的确切阶段是什么?它们如何与rootScope.Scope (s)交互。 我的假设是,当承诺解决 – 它调用摘要循环? 是/否? 能否详细回答以下几个方面的具体问题: 每个描述的步骤/阶段发生的事情的顺序是什么? 当新的延迟对象与一个新的承诺实例创build – 谁知道它/是否重要? 承诺对象解决时,范围如何更新? 是否必须在callback中手动更新它,否则将自动调用摘要并更新rootScope, 如同在此处声明的那样 提及至less一种从promisecallback中更新范围的方法 我假设有很多其他有用的方面,随时提供他们。 我会欣赏并接受最详细的答案,尽可能多地引用文档或来源(我自己找不到)。 我找不到任何以前的讨论这个话题,如果已经有 – 请张贴链接。 ps:对任何一个有帮助的人都可以通过为这个问题build议一个更好的标题,请在评论中添加您的build议。 干杯!

如何在成功处理程序外使用$ http promise response

$scope.tempObject = {}; $http({ method: 'GET', url: '/myRestUrl' }).then(function successCallback(response) { $scope.tempObject = response console.log("Temp Object in successCallback ", $scope.tempObject); }, function errorCallback(response) { }); console.log("Temp Object outside $http ", $scope.tempObject); 我在successCallback得到响应,但没有获得$scope.tempObject外的$http $scope.tempObject 。 其显示undefined 。 如何在$http之后访问response或$scope.tempObject

这是一个“延迟反模式”?

我发现很难理解“延迟反模式”。 我认为我理解它的原则,但我还没有看到一个超级简单的例子是什么服务,有不同的承诺,有一个反模式,所以我想我会尽我所能,但看到我不怎么样超级在知道它我会得到一些澄清第一。 我在下面的工厂(SomeFactory): //url = 'data.json'; return { getData: function(){ var deferred = $q.defer(); $http.get(destinationFactory.url) .then(function (response) { if (typeof response.data === 'object') { deferred.resolve(response.data); } else { return deferred.reject(response.data); } }) .catch(function (error) { deferred.reject(error); }); return deferred.promise; } 我检查它的一个对象的原因只是添加一个简单的validation层到$http.get() 在下面,在我的指示: this.var = SomeFactory.getData() .then(function(response) { //some variable = response; }) .catch(function(response) { //Do […]