Ich bin eine Datenbank abfragen und die Ergebnisse als zeilenweise Datenstrom der Ereignisse 'db_row_receieved' abrufen. Ich versuche, diese Ergebnisse nach Unternehmens-ID zu gruppieren, bekomme aber keine Ausgabe über das Abonnement.RxJS-Gruppierung emittierte Ereignisse nodejs
Das db-Zeilenformat wird unten angezeigt.
// row 1
{
companyId: 50,
value: 200
}
// row 2
{
companyId: 50,
value: 300
}
// row 3
{
companyId: 51,
value: 400
}
Code:
var source = Rx.Observable.fromEvent(eventEmitter, 'db_row_receieved');
var grouped = source.groupBy((x) => { return x.companyId; });
var selectMany = grouped.selectMany(x => x.reduce((acc, v) => {
return acc + v.value;
}, 0));
var subscription = selectMany.subscribe(function (obs) {
console.log("value: ", obs);
}
Erwartete Ausgabe:
value: 500 // from the group with companyId 50
value: 400 // from the group with companyId 51
tatsächliche Ausgang: Abonnement nichts ausgibt, funktioniert aber bei der Verwendung von Rx.Observable.fromArray (EinArray)
Kann mir bitte jemand sagen, wo ich falsch gelaufen bin?
Sind Sie sicher, dass 'eventEmitter' tatsächlich Ereignisse mit dem angegebenen Namen ausgibt. Der Rest des Codes sieht gut aus. –
Haben Sie versucht, gruppierte Subscribe (data => {console.log (data);}); um zu sehen, ob die groupeBy funktioniert –
@Yury, Ja, eventEmitter gibt eine Zeile aus. – user1145347