Как правильно кешировать в Angular?
https://docs.angularjs.org/api/ng/service/$http#caching
в целом же вроде как и так норм, единственное что я бы в кэш сразу промис еще положил что бы все остальные чуваки тоже дожидались а не дергали заново апишку.
Я реализовал кэширование запросов примерно также, это хороший вариант.