Kann mir $q.when
jemand erklären, wie in AngularJS funktioniert? Ich versuche zu analysieren, wie es $http
funktioniert und habe Folgendes gefunden:
var promise = $q.when(config);
Und hier ist das Konfigurationsobjekt von der Chrome-Konsole:
Object {transformRequest: Array[1], transformResponse: Array[1], cache: Object, method: "GET", url: "/schedule/month_index.html"…}
cache: Object
headers: Object
method: "GET"
transformRequest: Array[1]
transformResponse: Array[1]
url: "/schedule/month_index.html"
__proto__: Object
Was passiert als nächstes? Wie wird dieses Objekt aufgelöst oder abgelehnt?
Antworten:
Das Anrufen
$q.when
erfordert ein Versprechen oder einen anderen Typ. Wenn es sich nicht um ein Versprechen handelt, wird es in ein Versprechen eingewickelt und die Lösung des Anrufs festgelegt. Wenn Sie einen Wert übergeben, wird dieser niemals abgelehnt.Aus den Dokumenten:
quelle
If you pass a value to it
- aber was ist, wenn ich ein Objekt passiere?$q.when(myfunc)
oder indem Sie die Funktion aufrufen, die Sie übergeben :$q.when(myfunc())
? Ich weiß nicht genau, was der erstere tun wird ... der letztere wirdmyfunc()
zuerst aufrufen und den zurückgegebenen Versprechenwert an weitergeben.when()
.