2016-07-26 3 views
2

Ich bin ein bisschen verwirrt, je mehr ich online Ressourcen über $q und $http lesen, desto mehr dreht sich mein Kopf. Also, wenn ich einen $http.get Anruf mache, schließt das kein Versprechen ein? Oder bringe ich $q herein?

+0

Wie gezeigt [hier] (https://docs.angularjs.org/api/ng/se rvice/$ http # get) $ http.get gibt ein Versprechen zurück. – k4l4m

+0

Sie würden $ q trotzdem bringen, wenn irgendwo in der Kette, die Sie eine Ausnahme über $ q.reject() werfen wollen – sq33G

Antwort

0

Die $ http API ausgesetzt ist, auf der Grundlage der latenten/Versprechen APIs durch die $ q Service. Während für einfache Nutzungsmuster dies nicht so wichtig ist, ist es wichtig, für erweiterte Verwendung mit diesen APIs und die Garantien, die sie bieten, vertraut zu machen.

https://docs.angularjs.org/api/ng/service/$http

Was bedeutet, dass die $http.get ohnehin ein Versprechen zurück. Keine Notwendigkeit, Ihren eigenen $q Ansatz zu verschachteln. Gib einfach den $http Aufruf zurück.

1

Es ist auf $ q gebaut und gibt ein Versprechen. Lesen Sie die Dokumentation: https://docs.angularjs.org/api/ng/service/ $ http

Und das Beispiel gibt:

$http({ 
    method: 'GET', 
    url: '/someUrl' 
}).then(function successCallback(response) { 
    // this callback will be called asynchronously 
    // when the response is available 
    }, function errorCallback(response) { 
    // called asynchronously if an error occurs 
    // or server returns response with an error status. 
}); 

$ http.get ist nur eine bequeme Methode, auf dem oben.

0

Sie auf den folgenden Link

https://www.peterbe.com/plog/promises-with- $ http

Dieser Service ($ http.get()) kehrt Versprechen als Erfolg Rückruf und Fehler-Callback beziehen kann ... so diese Funktion selbst gibt Versprechen . Sie müssen nur damit umgehen

+0

$ http ist auch ein Teil des Links kopieren Sie einfach den gesamten Link als Referenz –

0

$ http.get Anruf enthält das kein Versprechen? Die Antwort ist Ja, Sie ein Versprechen zurückkehren kann oder das Versprechen, mit $ http lösen

ein Versprechen von $ Rückkehr http.get

getData: function() { 
    return $http.get('some url'); // you can resolve this promise later 
            // using (then) 
} 

So später in Ihrem Code können Sie die oben Versprechen wie dieses

lösen
... 

myService.getData().then(function(response) { 
    // do something with response 
}).catch() 

Resolve das Versprechen Inline

getData: function() { 
    $http.get('some url').then(function(response) { 
     // do something with response 
    }).catch() 
}