Comment ça fonctionne?

Quelqu’un peut-il m’expliquer comment fonctionne $q.when dans AngularJS? J’essaie d’parsingr le fonctionnement de $http et j’ai trouvé ceci:

 var promise = $q.when(config); 

Et voici l’object config de la console 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’est-ce qui se passe ensuite? Comment cet object est résolu ou rejeté?

    Appeler $q.when une promesse ou tout autre type, si ce n’est pas une promesse, alors cela l’enveloppera dans une promesse et une résolution d’appels. Si vous lui transmettez une valeur, elle ne sera jamais rejetée.

    De la documentation:

    Entoure un object qui pourrait être une valeur ou une promesse (tierce) alors capable dans une promesse $ q. Ceci est utile lorsque vous traitez avec un object qui peut ou peut ne pas être une promesse, ou si la promesse provient d’une source qui ne peut pas être fiable.