Quelqu'un peut-il m'expliquer comment $q.when
fonctionne AngularJS? J'essaie d'analyser comment $http
fonctionne et j'ai trouvé ceci:
var promise = $q.when(config);
Et voici l'objet de configuration 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
Que se passe-t-il ensuite? Comment cet objet est-il résolu ou rejeté?
Réponses:
L'appel
$q.when
prend une promesse ou tout autre type, si ce n'est pas une promesse, il l'enveloppera dans une promesse et la résolution de l'appel. Si vous lui transmettez une valeur, elle ne sera jamais rejetée.À partir de la documentation:
la source
If you pass a value to it
- mais que faire si je passe un objet?$q.when(myfunc)
ou en appelant la fonction de votre passage à:$q.when(myfunc())
? Je ne sais pas exactement ce que fera le premier ... le second invoquera enmyfunc()
premier et passera la promesse | valeur renvoyée à.when()
.