Sto provando l'http GET di Angular 2 per recuperare un elenco di articoli principali su HackerNews e dopo di che recupererò i rispettivi dettagli in un osservabile nidificato.Nested Observable in Angular 2
Ho riscontrato questo errore quando tento di eseguire il ciclo e visualizzare i dati nel mio codice HTML.
non riesce a trovare un diverso supporto oggetto '[object Object]'
Inoltre, sto indovinando ci dovrebbe essere un modo migliore per fare questo, qualsiasi puntatore?
getTopPost() {
this.http.get('https://hacker-news.firebaseio.com/v0/topstories.json')
.map(res => res.json())
.subscribe(
data => {
data.map(function(postId){
let storyUrl = "https://hacker-news.firebaseio.com/v0/item/"+ postId +".json";
that.http.get(storyUrl)
.map(res => res.json())
.subscribe(data => that.hnData = data,
err => that.logError(err),
() => console.log(that.hnData));
});
},
err => this.logError(err);
);
}
HTML
<ion-item *ngFor="#item of hnData">
{{item.title}}
</ion-item>
ma perché non è una buona pratica per annidato loro? Ho un problema perché sto nidificando su http.get che restituisce due osservabili, sto provando ad avere qualcosa come la promessa (risolvi prima la chiamata poi esegui la seconda) ma ottengo alcuni parametri indefiniti come se fossi in un altro ambito . – mautrok
Non penso che sia davvero male fare il nesting delle chiamate xhr osservabili, ma ciò che è male è annidare le sottoscrizioni (iscriversi ad un osservabile all'interno di un altro abbonamento osservabile). Devi usare operatori come 'flatMap',' concatMap', .. e iscriverti solo una volta. – bertrandg