Bonsoir tout le monde,

Je suis actuellement entrain de suivre un tuto angularJs et je galère pour trouver une explication à un code..

J'ai donc crée une directive serviceAjax qui contient une méthode popular. Mais dans le tuto il est suivi d'une autre méthode "then()"
Je n'ai pas trouvé de réponse sur le net pourtant j'ai bien cherché..

Que fais exactement ce 'then' et à quoi sert il?

code qui vient de mon controller:

serviceAjax.popular($scope.currentPage).then(function(data){
          $scope.movies = data.data.results;
          $scope.totalPages = data.data.total_pages;
          $scope.loading = false;
      });

Si jamais voici mon service ;)

angular.module('cineAngularApp')
  .factory('serviceAjax', function serviceAjax($http) {
    return{
      popular: function(page){
        return $http.get("http://localhost:3000/popular?page=" + page);
      }
    }
  });

Merci d'avance pour réponses ;)

3 réponses


Defy
Réponse acceptée

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).

Bonjour Defy,

Un tout grand merci pour ta réponse, elle ne pouvait être plus clair et précise.

Effectivement je voulais écrire "service" mais mon cerveau s'est un peu embrouillé :D

Bien à toi.

de rien :-) le forum est la pour ca ;-)