¿Alguien puede explicarme cómo $q.when
funciona en AngularJS? Estoy tratando de analizar cómo $http
funciona y encontré esto:
var promise = $q.when(config);
Y aquí está el objeto de configuración de la consola de 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
¿Qué pasa después? ¿Cómo se resuelve o rechaza este objeto?
Respuestas:
Llamar
$q.when
requiere una promesa o cualquier otro tipo, si no es una promesa, la envolverá en una promesa y llamará a resolver. Si le pasa un valor, nunca será rechazado.De los documentos:
fuente
If you pass a value to it
- pero ¿y si paso objeto?$q.when(myfunc)
o invocando la función que estás pasando$q.when(myfunc())
:? No sé exactamente qué hará el primero ... el último invocarámyfunc()
primero y pasará el valor de la promesa devuelta a.when()
.