Primeiros passos com promessas no AngularJS

12
Primeiros passos com promessas no AngularJS

Transcript of Primeiros passos com promessas no AngularJS

Page 1: Primeiros passos  com promessas no AngularJS

Primeiros passos com promessas no AngularJS

Page 2: Primeiros passos  com promessas no AngularJS

O que é isso?

Page 3: Primeiros passos  com promessas no AngularJS

- pendente

- concluída.

- rejeitada.

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

Page 4: Primeiros passos  com promessas no AngularJS

PENDENTE

REJEITADA

CONCLUÍDA* Imutáveis

OU

Page 5: Primeiros passos  com promessas no AngularJS

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.

Page 6: Primeiros passos  com promessas no AngularJS

● 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.

Page 7: Primeiros passos  com promessas no AngularJS

● 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).

Page 8: Primeiros passos  com promessas no AngularJS

● 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.

Page 9: Primeiros passos  com promessas no AngularJS

● 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.

Page 10: Primeiros passos  com promessas no AngularJS

● 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.

Page 11: Primeiros passos  com promessas no AngularJS

● Com o método $routeProvider.when:

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

Page 12: Primeiros passos  com promessas no AngularJS

Obrigado!@_cauealves

/cauealves