Angularjs   发布时间:2022-04-20  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了AngularJS承诺通知不工作大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
我有以下控制器代码
.controller('Controller1',function ($scope,MyservicE) {

    var promise = Myservice.getData();
    promise.then(function(success) {
        console.log("success");
    },function(error) {
        console.log("error");
    },function(updatE) {
        console.log("got an update!");
    }) ;

}

在我的services.js中:

.factory('Myservice',function ($resource,API_END_POINT,localStorageservice,$q) {
   return {
       getData: function() {
           var resource = $resource(API_END_POINT + '/data',{
               query: { method: 'GET',isArray: true }
           });

           var deferred = $q.defer();
           var response = localStorageservice.get("data");
           console.log("from local storage: "+JSON.Stringify(responsE));
           deferred.notify(responsE);

           resource.query(function (success) {
               console.log("success querying RESTful resource")
               localStorageservice.add("data",success);
               deferred.resolve(success);
           },function(error) {
               console.log("error occurred");
               deferred.reject(responsE);
           });

           return deferred.promise;
       }
   }

})

但是由于某种原因,deferred.notify调用似乎没有执行并在控制器中被接收.这里有没有什么不对?我不知道如何使通知执行.

我设法通过在$timeout函数中包装notify来获取它的工作:
$timeout(function() {
  deferred.notify('In progress')},0)

看来你不能在通知返回承诺对象之前调用通知,这是有道理的.

大佬总结

以上是大佬教程为你收集整理的AngularJS承诺通知不工作全部内容,希望文章能够帮你解决AngularJS承诺通知不工作所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。