O que $ q.defer () realmente faz?
Estou aprendendo sobre JS Angular e no momento estou tentando entender sobre promessas e programação assíncrona e tenho essa dúvida sobre$q.defer()
. O que quero dizer é o seguinte: geralmente quando as pessoas trabalham com promessas, fazem algo assim, considerando que $ q já está disponível
function someAsyncFunction() {
var deferred = $q.defer();
/* Do things and if everything goes fine return deferred.resolve(result)
otherwise returns deferred.reject()
*/
return deferred.promise;
}
O que isso realmente está fazendo? Quando fazemosvar deferred = $q.defer()
muda imediatamente toda a execução dessa função para outro thread e retorna a promessa sendo uma referência aos resultados dessa operação que ainda está executando lá?
É assim que devemos pensar ao criar métodos assíncronos?