Na página de documentação do Angular 2 para usar o serviço Http, há um exemplo.
getHeroes (): Observable<Stuff[]> {
return this.http.get(this.url)
.map(this.extractData)
.catch(this.handleError);
}
Clonei o projeto angular2-webpack-starter e adicionei o código acima.
Eu importei Observable
usando
import {Observable} from 'rxjs/Observable';
Estou assumindo que as propriedades Observable
são importadas também ( .map
funciona). Observou o changelog do rxjs.beta-6 e nada é mencionado catch
.
javascript
angular
typescript
rxjs
BrianRT
fonte
fonte
import {Observable} from 'rxjs/Observable';
? Isso parece mais intuitivo para mim.rxjs/Observable
módulo não importa operadores porque existem muitos operadores. Orxjs/Rx
módulo importa tudo ... Eu acho que é uma escolha de design.Com o RxJS 5.5+, o
catch
operador agora está obsoleto. Agora você deve usar ocatchError
operador em conjunto compipe
.Para cada Operador RxJS que você importa, incluindo
catchError
agora você deve importar de 'rxjs / operadores' e usar o operador de tubulação.Exemplo de captura de erro para uma solicitação HTTP Observable
Observe aqui que
catch
é substituído porcatchError
e opipe
operador é usado para compor os operadores de maneira semelhante à que você está acostumado com o encadeamento de pontos.Consulte a documentação rxjs em pipable (anteriormente conhecido como locável ) operadores para mais informações.
fonte
map(res => res)
necessário?pipe
função RxJS permite combinar várias funções em uma única função. A função pipe () usa como argumentos as funções que você deseja combinar e retorna uma nova função que, quando executada, executa as funções compostas em sequência. Esse mapeamento não faz nada, pois é tecnicamente uma função de identidade.fonte