2013-05-27 2 views
79

Может кто-нибудь объяснить мне, как $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 

Что происходит дальше? Как этот объект получить или разрешен?

+0

$ Q реализует пообещать модели его просто просто обертка вокруг обратных вызовов в JavaScript .so, когда обратный вызов успешно обожженных обещания получает решены –

+1

@Ajaybeniwal, но в этом случае объект передается, не обратный вызов. Как он разрешен/отклонен в случае, когда объект прошел, а не обратный вызов? – SET

ответ

98

Вызов $q.when имеет обещание или какой-либо другой тип, если это не обещание, оно обернет его обещанием и вызовом. Если вы передадите ему значение, оно никогда не будет отвергнуто.

Из документов:

Обертывания объект, который может быть значение или (третья сторона) тогда в состоянии обещание в $ д обещание. Это полезно, когда вы имеете дело с объектом, который может или не может быть обещанием, или если обещание исходит от источника, которому нельзя доверять.

+0

'Если вы передадите ему значение, но что, если я передаю объект? – SET

+8

Значение, объект, массив все равно. –

+3

Что делать, если я передаю функцию, которая возвращает обещание? означает ли это, что тогда обратный вызов будет передан по обещанию результата param send по разрешению? –

Смежные вопросы