Sander Elias : thankx alot , Eric eslinger thankx a billion for the full feedback .. but i love to work with the soc principle and to be organized that's why i use factories instead of the controller and also for testability .
Le Tue Nov 25 2014 at 2:59:35 PM, Eric Eslinger <[email protected]> a écrit : > The use of $q in that situation isn't really needed. You could do > something like > > authenticate: function (url, user) { > return $http.post(url,user).then(function(response){ > console.log(response); > return response; > }); > } > > That will return a promise that console.logs its response and still > resolves to that response. You can delete the .then entirely. Either way, > in your application logic you could do: > > AuthenticateService.authenticate(url,user).then(function(response) { > //note that this is the 'success' state > $scope.view.username = response.data.username; > //etc etc > }).catch(function(err) { > // the $post returned a non 200 value > console.log('ERROR authenticating!'); > console.log(err); > }); > > Of course, just having a function that returns a $http.post is a bit of an > over-abstraction. You could just put the $http on your controller too. On > the other hand, most of the time you're not *just* doing the $http.post in > the authenticate service. You could modify that to do > > authenticate: function(user) { > //we can keep the service URL local so it's only changed in one place > return $http.post(knownBackendUrl,user).then(function(response) { > //deal with response.data here and create a > // user object to return that's more abstracted > }).catch(function(err) { // also do error handling > }); > > Then it's more worthwhile. > > > > > > > On Tue Nov 25 2014 at 3:28:12 AM Houssem Yahiaoui <[email protected]> > wrote: > >> Hello, >> i have this thing in my *code* that i include *$q* with *$http* .. >> >> *authenticate : function(url, user){* >> * var defer = $q.defer();* >> * //console.log('here');* >> * return $http.post(url, user).then(function (response) {* >> * if (response.data) {* >> * console.log(response);* >> * defer.resolve(response);* >> * } else{* >> * defer.resolve(response.data.errMessage);* >> * }* >> * return defer.promise;* >> * });* >> >> * }* >> >> and it works normally and i know that* $http* resolve automatically a >> *promise* .. so is the usage of *$q promise* here is needed ? >> >> -- >> > You received this message because you are subscribed to the Google Groups >> "AngularJS" group. >> To unsubscribe from this group and stop receiving emails from it, send an >> email to [email protected]. > > >> To post to this group, send email to [email protected]. >> Visit this group at http://groups.google.com/group/angular. >> For more options, visit https://groups.google.com/d/optout. >> > -- > You received this message because you are subscribed to a topic in the > Google Groups "AngularJS" group. > To unsubscribe from this topic, visit > https://groups.google.com/d/topic/angular/X0YWDknj78Q/unsubscribe. > To unsubscribe from this group and all its topics, send an email to > [email protected]. > To post to this group, send email to [email protected]. > Visit this group at http://groups.google.com/group/angular. > For more options, visit https://groups.google.com/d/optout. > -- You received this message because you are subscribed to the Google Groups "AngularJS" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. To post to this group, send email to [email protected]. Visit this group at http://groups.google.com/group/angular. For more options, visit https://groups.google.com/d/optout.
