Primeiros passos com promessas no AngularJS

Post on 15-Apr-2017

447 views 0 download

Transcript of Primeiros passos com promessas no AngularJS

Primeiros passos com promessas no AngularJS

O que é isso?

- pendente

- concluída.

- rejeitada.

A promessa é o resultado de uma operação assíncrona e pode ter um dos estados listados abaixo:

PENDENTE

REJEITADA

CONCLUÍDA* Imutáveis

OU

No Angular, as promessas são criadas pelo serviço $q.

● Com base no mecanismo de promessas (Q) de Kris Kowal: https://github.com/kriskowal/q

● Utilizado pela comunidade;

● É integrado com $rootScope;

● É uma versão básica da biblioteca Q contendo os recursos necessários para a comunicação assíncrona.

● Os métodos de API diferidos (apenas o que você precisa saber):

- reject (motivo) - Cria uma promessa que é resolvido como rejeitado pelo motivo passado como um parâmetro.

- resolve(valor) -Resolver a promessa com o valor passado como um parâmetro.

● Os métodos de promessas API (apenas o que você precisa saber):

- then(successCallback, errorCallback, notifyCallback) - chama um dos retornos de chamada de sucesso ou de erro de forma assíncrona, assim que o resultado está disponível.

- catch(errorCallback) - abreviação para promise.then(null, errorCallback).

● Quando a promessa é resolvida com sucesso, a primeira função passada como parâmetro "then" retorna um objeto de resposta.

● Quando ocorre um erro, a função "catch" tem o resultado da operação.

● Com os métodos do serviço $http:

- success - esse retorno será chamado de forma assíncrona quando a resposta estiver disponível.

- error - chamado de forma assíncrona se ocorrer um erro ou se o servidor retornar a resposta com um status de erro.

● Como posso sincronizar múltiplas funções assíncronas e evitar problemas de callbacks?Resposta: Use a função $q.all, para combinar várias promessas em uma única promessa.

● Com o método $routeProvider.when:

Apenas irá redirecionar para "/allNames" quando a promessa "allNamesFactory" for resolvida.

Obrigado!@_cauealves

/cauealves