2016-05-03 7 views
0

Ich verwende $http, um einen Anruf zu tätigen. Auf der Grundlage des erfolgreichen Ergebnisses des Anrufs kann ich entscheiden, einen Fehler/Abweisung zu werfen und ihn zum nächsten Anruf als Fehler heruntersummen zu lassen. Wenn jedoch ein Fehler ausgelöst wird, wird der Prozess angehalten. Wie kann ich das $ http-Versprechen ablehnen, ohne es in irgendeinen $ q-Code zu verpacken?

In dem obigen Code möchte ich die große Fehlermeldung als einen abgelehnten Anruf enden. Aber in diesem Fall stirbt es einfach mit dem Fehler. So behandle ich Dinge in Bluebird, aber es ist ein Nein, hier zu gehen.

+1

In beiden Fällen nur eine abgelehnte Versprechen zurückkehren zurückgeben $ q.reject ('Grund'). –

+0

Ah ja, ich dachte, ich musste es in ein '$ q. Abgeschlossen 'wickeln, aber ja, das funktioniert. Du kannst das als Antwort schreiben, wenn du willst. – cyberwombat

Antwort

2

Ti die Kette in einem abgelehnten Staat weiterhin nur abgelehnte Versprechen $q.reject('reason') von Ihrem $ http Ergebnis zurückgeben etwas wie

$http.get(url).then( function (response){ if(something){ return $q.reject('reason'); } return response; } )

diese Weise können Sie aa abgelehnt Versprechen zu bekommen und auch darauf reagieren können, wenn Der API-Ruf ist erfolgreich.