1

我有一个从服务器获取与当前登录用户相关的数据的服务,该服务在内部缓存返回的用户对象。用户服务:

    var appCache = $cacheFactory.get('appCache');
    var userInfoFromCache = appCache.get('userInfo');

    if (userInfoFromCache) {
        $log.debug("User info cache hit");            
        deferred.resolve(userInfoFromCache);
    } else{
        $log.debug("User info cache miss");
        //do work and get data from server
        appCache.put('userInfo', userInfo);
    }

服务很好。我从多个加载位置(例如顶部导航和主视图内部)调用用户服务。我还在 app.js 的运行部分调用该服务:

.run(function(userService) {
    userService.getUser();
})

由于我一次从多个地方调用该服务,我最终会调用多个服务器。有没有一种方法可以设置代码锁定,以便对 userService 的后续调用由缓存提供服务?

4

0 回答 0