javascript - Angular Service Promises -


so, i've got angular app makes restful calls server. there service wraps calls server. have method on service returns promise $http service. i'd add additional processing on method call, i'm not sure how because of asynchronous nature of promise.

currently in typescript:

class boardservice {     private $http;      constructor($rootscope: irootscope, $http: ng.ihttpservice) {           this.$http = $http;     }      fetchboard(id: number) {         return this.$http.get("/api/board/" + id);     } } 

i'd this:

fetchboard2(id: number) {     this.$http.get("/api/board/" + id).success(function(data)     {         // manipulate data      });      // return manipulated data;  } 

how this?

tricky sentence warning! because promises asynchronous, returning data based on data promise must return promise. want fetchboard2 return promise gets resolved once $http promise has come , you've manipulated data. angular's $q service.

fetchboard2(id: number) {   var deferred = $q.defer();    $http.get("/api/board/" + id).success(function(data) {     var newdata = dosomething(data);     deferred.resolve(newdata);   });    return deferred.promise; } 

managing deferred objects gets fiddly, can use then insert own manipulation pipeline.

fetchboard3(id: number) {   return $http.get(...).then(function(data) {     return dosomething(data);   }); } 

for more detail, here's a article.


Comments

Popular posts from this blog

Java 3D LWJGL collision -

spring - SubProtocolWebSocketHandler - No handlers -

methods - python can't use function in submodule -