大佬教程收集整理的这篇文章主要介绍了angularjs – 在Angular中有多个调用等同一个promise,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
第一次调用USER.getUser()时,它会对用户的GET数据执行$http请求.调用完成后,它将数据存储在USER.data中.如果对USER.getUser()进行另一次调用,它会检查USER.data中是否有数据,如果有数据,则返回该数据,而不是进行调用.
我的问题是对USER.getUser()的调用发生得如此之快,以至于USER.data没有任何数据,因此它再次触发$http调用.
以下是我现在为用户工厂提供的信息:
.factory("user",function($http,$q){ return { getUser: function(){ var that = this; var deferred = $q.defer(); if(that.data){ deferred.resolve(that.data); } else { $http.get("/my/url") .success(function(res){ that.data = res; deferred.resolve(that.data); }); } return deferred.promise; } } });
我希望我的问题有道理.任何帮助将非常感激.
以上是大佬教程为你收集整理的angularjs – 在Angular中有多个调用等同一个promise全部内容,希望文章能够帮你解决angularjs – 在Angular中有多个调用等同一个promise所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。