code: function done(status, response, headersString) {
              if (cache) {
                  if (isSuccess(status)) {
                      cache.put(url, [status, response, parseHeaders(headersString)]);
                  } else {
                      // remove promise from the cache
                      cache.remove(url);
                  }
              }
  
              resolvePromise(response, status, headersString);
          }
docs: Callback registered to $httpBackend():
  - caches the response if desired
  - resolves the raw $http promise
  - calls $apply