Created
October 8, 2015 09:11
-
-
Save EmmanuelDemey/ee5af88e7adb4dade667 to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| angular.module('application').controller('DemoCtrl', function($scope, $q){ | |
| function sendHttpRequest(){ | |
| //Comme je n'ai pas de serveur, je ne peux pas attaquer directement l'API | |
| //return $http.get('/api') | |
| //Pour y remédier, je vais créer ma propre promesse grâce au service $q | |
| var deferred = $q.defer() | |
| //L'appel à la méthode resolve va resoudre, de manière la synchrone, la promesse qui vient d'être créée | |
| deferred.resolve({data: {'from': 'server'}}); | |
| return deferred.promise; | |
| } | |
| function traitement1(data){ | |
| //Retourne ta donnée modifiée | |
| return data; | |
| } | |
| function traitement2(data){ | |
| //Retourne ta donnée modifiée | |
| return data; | |
| } | |
| sendHttpRequest().then(function(result){ | |
| //Lorsque je reçois la réponse du serveur, je désire | |
| //faire 2 traitements en parallèle avec la même donnée (celle reçue du serveur) | |
| return $q.all([traitement1(result.data), traitement1(result.data)]) | |
| .then(function(result){ | |
| //la valeur retournée par traitement1 sera dans result[0] | |
| //la valeur retournée par traitement2 sera dans result[1] | |
| $scope.result = result; | |
| }); | |
| }) | |
| }); |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment