Mam więc aplikację Angular, która wykonuje spokojne połączenia z serwerem. Istnieje usługa, która owija połączenia z serwerem. Obecnie mam metodę w usłudze, która po prostu zwraca obietnicę z usługi $ http. Chciałbym dodać dodatkowe przetwarzanie tego wywołania metody, ale nie jestem pewien jak to zrobić ze względu na asynchroniczny charakter obietnicy.Obietnica usług granicznych
Obecnie w maszynopisie:
class BoardService {
private $http;
constructor($rootScope: IRootScope, $http: ng.IHttpService) {
this.$http = $http;
}
fetchBoard(id: number) {
return this.$http.get("/api/board/" + id);
}
}
Chciałbym dostać się coś takiego:
fetchBoard2(id: number) {
this.$http.get("/api/board/" + id).success(function(data)
{
// Manipulate the data
});
// return manipulated data;
}
Jak można to zrobić?
O ile mi wiadomo, .success() zachowują się tak samo jak .then() i zwraca obietnica również. return $ http.get(). success() również zadziała. – Okazari
Prawie - dziękuję za sprawdzenie tego. 'success' zwraca oryginalną obietnicę (zawierającą odpowiedź HTTP), a' then' zwraca nową obietnicę rozwiązaną z wynikiem funkcji, którą mu dajesz. Ref: http://stackoverflow.com/a/23805864/802618 –
Thx za dodanie, nie teraz to, że dokładne. – Okazari