Alguém pode me explicar como $q.when
funciona no AngularJS? Estou tentando analisar como $http
funciona e descobri isso:
var promise = $q.when(config);
E aqui está o objeto de configuração do console do 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
O que acontece depois? Como esse objeto é resolvido ou rejeitado?
Respostas:
Chamar
$q.when
exige uma promessa ou qualquer outro tipo; se não for uma promessa, ele irá envolvê-la em uma promessa e resolver a chamada. Se você passar um valor para ele, ele nunca será rejeitado.Dos documentos:
fonte
If you pass a value to it
- mas e se eu passar objeto?$q.when(myfunc)
ou invocando a função que você passa em$q.when(myfunc())
:? Não sei exatamente o que o primeiro fará ... o último invocarámyfunc()
primeiro e passará o valor | promessa retornada para.when()
.