Может кто-нибудь объяснить мне, как $q.when
работает AngularJS? Пытаюсь проанализировать как $http
работают и обнаружил вот что:
var promise = $q.when(config);
А вот и объект конфигурации из консоли 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
Что происходит дальше? Как этот объект разрешается или отклоняется?
Ответы:
Вызов
$q.when
принимает обещание или любой другой тип, если это не обещание, он оборачивает его в обещание и вызывает разрешение. Если вы передадите ему значение, оно никогда не будет отклонено.Из документов:
источник
If you pass a value to it
- а что, если я прохожу мимо объекта?$q.when(myfunc)
или вызывая функцию, которую вы передаете$q.when(myfunc())
:? Я точно не знаю, что будет делатьmyfunc()
первый ... второй вызовет первым и передаст возвращенное обещание | значение.when()
.