Eckige 2 - Mehrere HTTP-Anfrage in der gleichen Zeit
Bin ich tatsächlich arbeiten auf eine Eckige 2-Anwendung, aber ich habe ein paar Probleme. In der Tat, ich habe eine Methode, die Daten aus einer Datenbank. Aber ich versuche, kopieren Sie diese Daten auf einen anderen ein, zu tun, die ich tun müssen, um mehrere HTTP-Requests ( Anfragen Anzahl sind nie die gleichen ).
Hier ist mein migrieren Methode. Zuerst bekomme ich die Daten aus der DB und dann versuche ich Sie zu posten, in der anderen eine
service.getDatas().subscribe( data => {
let datas = data.json().data;
if (datas) {
let requests = [];
for (let data of datas) {
let req = service.addData(data); //addData() return an Observable
requests.push(req);
}
let c: Observable<any> = Observable.forkJoin(requests);
return c;
}
});
Oder Wenn ich subribing zu der Methode habe ich keine Antwort von ihm.
Hier ist meine Abonnenten
service.migrateData(targetDB).subscribe(res => {
console.log(res);
});
Möchte ich meine Methode für die Rückgabe einer Antwort, wenn alle Daten posten !
Eigentlich, wenn ich den Aufruf der addData () - Methode ist es nicht sogar auslösen der http-Anfrage, nichts passiert. Ich tryed, um einige RxJs Methode wie concat und forkJoin aber nichts. Oder nur ich nicht mit Ihnen.
Hier ist mein addData () - Methode
addData(data) {
let headers = new Headers({
'Content-Type': 'application/json'
});
headers.append('Authorization', 'Basic ' + btoa('username + ':' + 'password));
let _data = JSON.stringify({data: data});
return this.http.post('https://something.com', _data, {headers: headers});
}
Diese Methode funktioniert sehr gut für andere nutzen Fall.
Vielen Dank für Ihre Hilfe !
Wenn ich das mache, forkjoin wird eine Abonnenten-array und nicht einen beobachtbaren array :/ !
Wie über c.subscribe()? github.com/Reactive-Extensions/RxJS/blob/master/doc/api/core/...
InformationsquelleAutor A.Roussange | 2016-11-25
Du musst angemeldet sein, um einen Kommentar abzugeben.
Basierend auf Ihrem code das ist, was ich verstanden:
Als general Hinweis: die hier: rxjs kann sehr mächtig, wenn richtig eingesetzt, fast alles kann geschrieben werden als stream - als Faustregel können Sie sich merken:
migrationStream$.subscribe(..., ..., () => alert("Migration is complete!"));
InformationsquelleAutor olsn
Hier ist meine Lösung für mehrere Anforderungen stream mit 3 parallelen Anfragen
InformationsquelleAutor abahet