title: Clear service data in AngularJs
body: <p>I'm trying to store data in my services similar to the answer in :</p>
  
  <p><a href="https://stackoverflow.com/questions/12505760/angularjs-processing-http-response-in-service">Processing $http response in service</a></p>
  
  <pre>
  app.factory('myService', function($http) {
    var promise;
    var myService = {
      async: function() {
        if ( !promise ) {
          // $http returns a promise, which has a then function, which also returns a promise
          promise = $http.get('test.json').then(function (response) {
            // The then function here is an opportunity to modify the response
            console.log(response);
            // The return value gets picked up by the then in the controller.
            return response.data;
          });
        }
        // Return the promise to the controller
        return promise;
      }
    };
    return myService;
  });
  
  app.controller('MainCtrl', function( myService,$scope) {
    $scope.clearData = function() {
      $scope.data = {};
    };
    $scope.getData = function() {
      // Call the async method and then do stuff with what is returned inside our own then function
      myService.async().then(function(d) {
        $scope.data = d;
      });
    };
  });
  </pre>
  
  <p>However, I noticed that the data in my services persists even after logout. Thus I could login as a completely different user and see data which I should not see.</p>
  
  <p>How can I clear data after logout? Sure I could manually clear everything in all my services, but I am looking for a more general approach such as "clear all user data". I have tried to force a page refresh, and it works, but I don't like the flash it produces.</p>
  
  <p>edit: Code from example</p>