在AngularJS服务中缓存promise对象
我想使用Promises在AngularJS中实现动态加载静态资源。问题:我在页面上有几个组件可能(或不是,取决于哪些显示,因此是动态的)需要从服务器获取静态资源。加载后,可以在整个应用程序生命周期内进行缓存。
我已经实现了这个机制,但我是Angular和Promises的新手,我想确保这是一个正确的解决方案\方法。
var data = null;var deferredLoadData = null;function loadDataPromise() { if (deferredLoadData !== null) return deferredLoadData.promise; deferredLoadData = $q.defer(); $http.get("data.json").then(function (res) { data = res.data; return deferredLoadData.resolve(); }, function (res) { return deferredLoadData.reject(); }); return deferredLoadData.promise;}
因此,只发出一个请求,并且对loadDataPromise()的所有下一次调用都会获得第一个承诺。它似乎适用于进展中的请求或前一段时间已经完成的请求。
但缓存Promises是一个很好的解决方案吗?
富国沪深
绝地无双
浮云间
相关分类