Skip to content

Instantly share code, notes, and snippets.

@EmmanuelDemey
Created October 8, 2015 09:11
Show Gist options
  • Select an option

  • Save EmmanuelDemey/ee5af88e7adb4dade667 to your computer and use it in GitHub Desktop.

Select an option

Save EmmanuelDemey/ee5af88e7adb4dade667 to your computer and use it in GitHub Desktop.
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