Angular $ q.는 어떻게 작동합니까?


95

누군가 $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는
프라 미스

1
@Ajaybeniwal,하지만이 경우에는 콜백이 아닌 객체가 전달되었습니다. 콜백이 아닌 객체가 전달 된 경우 어떻게 해결 / 거부됩니까?
SET

답변:


113

Calling $q.when은 promise 또는 다른 유형을 취하며, 만약 그것이 promise가 아니면 promise로 감싸고 resolve를 호출합니다. 값을 전달하면 절대 거부되지 않습니다.

문서에서 :

값 또는 (제 3 자) 당시 가능한 약속 일 수있는 객체를 $ q 약속으로 래핑합니다. 이는 약속 일 수도 있고 아닐 수도있는 객체를 다룰 때 또는 약속이 신뢰할 수없는 소스에서 온 경우에 유용합니다.


If you pass a value to it-하지만 내가 물건을 건네면 어떡해?
SET

11
값, 객체, 배열 모두 동일합니다.
Derek Ekins 2013-06-13

3
promise를 반환하는 함수를 전달하면 어떻게됩니까? 그 콜백이 해결로 보낸 약속 결과 매개 변수를 전달한다는 의미입니까?
Onur Topal 2014 년

3
Onur, 당신이 함수를 전달한다고 말할 때 함수 객체로 의미합니까 : $q.when(myfunc)또는 함수를 호출하여 전달 하는 것을 의미 $q.when(myfunc())합니까? 전자가 무엇을할지 정확히 모르겠습니다. 후자가 myfunc()먼저 호출 하고 반환 된 promise | value를에 전달합니다 .when().
jrista
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.