Hello, alors c'est simple, $http retourne une promise, du coup tu as possiblement 2 états de ta requête, resolve si elle est passé et reject si elle n’est pas passée.
Le .then() te permet de récupéré le resolve et donc le résultat et le .catch() te permet de catcher l'erreur et de la traiter comme tu le veux dans ton application.
Et petite rectification, ce n’est pas une directive, mais un service et l’en loccurance une factory (il y a 3 types de services différents).