habe ich ionic 2 RC0
mit Versprechen zu Abrufen von Daten aus dem Server verwendet, aber mein Problem Ich habe immer einige Daten in jeder Anforderung, weil Versprechen die Daten.Ionic 2 Versprechen Verschiedene Daten vom Server
Also meine Frage ist:
, wie dieses Problem unterschiedliche Daten mit Versprechen jede Anfrage auflösen kann? irgendein Vorschlag?
Mein Code:
Api.ts
import { Injectable } from '@angular/core';
import { Http } from '@angular/http';
import 'rxjs/add/operator/map';
import 'rxjs/add/observable/from';
import 'rxjs/Rx';
@Injectable()
export class Api {
storeData: any;
constructor(public http: Http) {
this.storeData = null;
}
getData(id) {
if (this.storeData) {
return Promise.resolve(this.storeData);
}
return new Promise(resolve => {
this.http.get(URL+'?id='+id)
.map(res => res.json())
.subscribe(data => {
this.storeData = data.products;
resolve(this.storeData);
});
});
}
}
In Home i wie unten Code, um die Daten von api gelesen haben:
Home.ts
import { Injectable } from '@angular/core';
import { Http } from '@angular/http';
import 'rxjs/add/operator/map';
import 'rxjs/add/observable/from';
import 'rxjs/Rx';
@Injectable()
export class Home {
constructor() {}
getDataFromApi() {
let me = this;
me.api.getData(id)
.then(data => {
if (data != null) {
for (let i = 0; i < data.length; i++) {
console.log(JSON.stringify(data));
}
}else {
this.noProducts = 'There are no products matching the selection.';
}
});
}
}
Example :
wenn Anruf getDataFromApi(12);
Re wandte sich Daten wie {{name:bla bla, title: bla bla}}
dann die Funktion wieder, wenn Anruf mit verschiedenen id
wie: 10
getDataFromApi(10);
Rückkehr der einige Daten wie {{name:bla bla, title: bla bla}}
Mit dem obigen Code, erhalte ich ein Array mit den Daten enthält, werden alle Daten sind gleich. Gleicher Titel, Inhalt, Thumbnail und alles.
In 'Home.ts' die' getDataFromApi() 'Funktion ein Fehler aufgetreten ist' Property (dann) existiert nicht auf Typ (void) '; irgendein Vorschlag ? – mahmoudismail
Entschuldigung, ich habe die 'Rückkehr' vergessen ... Ich habe die Antwort aktualisiert :) – sebaferreras
danke für deine Antwort, aber ein anderer Fehler ist aufgetreten :),' Fehler: Kann Modul "rxjs/operator/add/toPromise" nicht finden ' – mahmoudismail