【发布时间】:2016-09-08 05:08:56
【问题描述】:
所以,我有一个小的 API 交互代码,如下所示:
function load_posts() {
return $http
.get('/posts')
.then(on_success);
function on_success(response) {
return response.data;
}
}
function get_posts() {
if (blog.posts) {
return $q.when(blog.posts);
}
return load_posts().then(function (posts) {
blog.posts = posts;
return blog.posts;
});
}
我这样做是为了避免一直访问 API 以获得相同的结果。我有几个单独的指令和组件可能需要调用此 API 端点,但它们不需要每次都获得新的结果。但这会导致一个丑陋的竞争条件:如果两个或更多组件在 load_posts 响应到达之前调用 get_posts 方法,那么它们都会发出 API 请求。没有副作用,因为这只是一次缓存尝试,但它破坏了整个目的。
关于如何进行此操作的任何想法?
【问题讨论】:
标签: javascript angularjs http-post angular-http