Czy ktoś może mi wyjaśnić, jak $q.when
działa AngularJS? Próbuję przeanalizować, jak $http
działa i znalazłem to:
var promise = $q.when(config);
A oto obiekt konfiguracyjny z konsoli Chrome:
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
Co się potem dzieje? Jak ten obiekt zostaje rozwiązany lub odrzucony?
Odpowiedzi:
Wezwanie
$q.when
przyjmuje obietnicę lub jakikolwiek inny rodzaj, jeśli nie jest to obietnica, to owinie ją w obietnicę i wywoła rozwiązanie. Jeśli przekażesz mu wartość, to nigdy nie zostanie odrzucona.Z dokumentów:
źródło
If you pass a value to it
- ale co jeśli mijam obiekt?$q.when(myfunc)
czy też wywołując funkcję, którą przekazujesz$q.when(myfunc())
:? Nie wiem dokładnie, co zrobi tamyfunc()
pierwsza ... druga wywoła najpierw i przekaże zwróconą wartość obietnicy do.when()
.