Как работает Angular $q.when?
Может кто-нибудь объяснить мне, как $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
Что будет дальше? Как этот объект будет разрешен или отклонен?
Ответы
Ответ 1
Вызов $q.when
берет на себя обещание или любой другой тип, если это не обещание, оно завершает его обещанием и разрешает вызов. Если вы передадите ему значение, оно никогда не будет отклонено.
Из документов:
Обертывает объект, который может быть значением или (сторонним), а затем - обещанием в $q. Это полезно, когда вы имеете дело с объектом, который может или не может быть обещанием, или если обещание исходит от источника, которому нельзя доверять.