angularjs - Is it okay to handle all the $http errors in controller? -


in services, i'm invoking rest services , returning promises controllers. error's handled @ controllers using catch below,

myservice.getdata(url).then(getdatasuccess).catch(exception.catcher('contact admin : ')); 

my question here is, since real $http calls made @ service, should have write catchers in service or catching in controller fine?,

scenario 1:       function getdata(url){              return $http.get(url);      }  scenario 2: (nested calls make combined results)      function getotherdata(url){           var defer = $q.defer();           $http.get(url).then(             function(response){                 $http.get(nextservice).then(                     function(res){                          defer.resolve('combined data');                     }                 )                                   }          );           return defer.promise;      } 

both service method not handling errors. instead returns promise. there situation kind of exception handling failed?

note: have created decorators handling javascript,angular errors , route errors separately. question particularly $http service errors.

yes have can fail triggering catch because have no reject().

you using anti-pattern creating own promise , not chaining nested request properly. neither of request rejections returned anywhere.

to able chain these rid of $q.defer() , do:

function getotherdata(url) {      // return beginning of promise chain     return $http.get(url).then(function (response) {         // return next promise         return $http.get(nextservice).then(function (res) {             // combine , return data              return {                 d1 : response.data,                 d2 : res.data             };         });     });     }  

now walk through scenarios , each part of chain intact.

think of chain each then needs return until end of chain


Comments

Popular posts from this blog

Hatching array of circles in AutoCAD using c# -

ios - UITEXTFIELD InputView Uipicker not working in swift -

Python Pig Latin Translator -