Ich habe den folgenden Code:Observable.forkJoin() nicht ausführt, nicht
//Loop: For each user ID/Role ID, get the data
userMeta.forEach((businessRole) => {
Observable.forkJoin(
af.database.object('/roles/'+businessRole.$value),
af.database.object('/users/'+businessRole.$key)
).subscribe(
data => {
console.log("Data received");
data[1].role = data[0];
this.users.push(data[1]);
},
err => console.error(err)
);
ich zu einem Ergebnis von 2 Observablen versuche mit forkJoin
zu abonnieren.
Aus einigen Gründen wird die Meldung "Daten empfangen" nicht angezeigt.
Meine userMeta
Variablen betrachtet console.log fein:
Was ist los?
Update: der folgende Code nichts zurückgibt entweder
let source = Observable.forkJoin(
af.database.object('/roles/'+businessRole.$value),
af.database.object('/users/'+businessRole.$key)
);
let subscription = source.subscribe(
function (x) {
console.log("GOT: " + x);
},
function (err) {
console.log('Error: %s', err);
},
function() {
console.log('Completed');
});
Was ich eigentlich zu tun versuchen, ist die Leistung des folgenden Codes verbessern:
//Subscription 3: role ID to role Name
af.database.object('/roles/'+businessRole.$value)
.subscribe((roleData) => {
//Subscription 4: Get user info
af.database.object('/users/'+businessRole.$key).subscribe(user => {
'forkJoin()' gibt einen Wert aus, nachdem beide Observables vollständig sind, also sind Sie sicher, dass sie es tun? Vielleicht endet einer von ihnen mit einem Fehler ... – martin
Auch keine Fehler (siehe Frage Update). Sie müssen auch arbeiten, weil der frühere Code ein subscribe in einem subscribe war, und es funktionierte – TheUnreal
'forkJoin()' übergibt keine Fehler von Quell-Observables, so dass dies nichts drucken wird, selbst wenn es Fehler warf. Wenn Sie sicherstellen möchten, dass keine Fehler auftreten, müssen Sie die einzelnen Observables abonnieren. – martin