Como lidar com serviços aninhados e promessas usando resolve e $ routeChangeError

É mais como uma pesquisa que fiz enquanto estava jogando com o AngularJS e gostaria de compartilhar, pois acho que algumas pessoas podem achar isso útil.

Às vezes, você precisa buscar alguns dados de vários serviços antes de instanciar o controlador e renderizar a exibição.

Você também pode ter uma situação em que um determinado serviço está aguardando uma resposta de outro serviço - uma espécie de estrutura de serviço aninhada.

Além disso, você quer ter certeza de que, se algum desses serviços falhar, você lidará com o erro de acordo.