Sto lavorando con un framework che chiama una funzione che implemento. Vorrei che il parametro di questa funzione fosse convertito in Osservabile e inviato attraverso una sequenza di Osservatori. Pensavo di poter usare un soggetto per questo, ma non si comporta come mi aspettavo.RxJS: Come avere un osservatore per elaborare più oggetti osservabili?
Per chiarire, ho qualcosa come il seguente codice. Pensavo che Option 1
di seguito avrebbe funzionato, ma finora mi sto accontentando di Option 2
, che non sembra affatto idiomatico.
var eventSubject = new Rx.Subject();
var resultSource = eventSubject.map(processEvent);
var subscription = resultSource.subscribe(
function(event) {
console.log("got event", event);
},
function(e) {
log.error(e);
},
function() {
console.log('eventSubject onCompleted');
}
);
// The framework calls this method
function onEvent(eventArray) {
var eventSource = Rx.Observable.from(eventArray);
// Option 1: I thought this would work, but it doesn't
// eventSource.subscribe(eventSubject);
// Option 2: This does work, but its obviously clunky
eventSource.subscribe(
function(event) {
log.debug("sending to subject");
eventSubject.onNext(event);
},
function(e) {
log.error(e);
},
function() {
console.log('eventSource onCompleted');
}
);
}
è che 'gestore onEvent' qualcosa ti registri? – user3743222
In ogni caso, quello che posso pensare usa 'Subject.create (observer, observable) 'e non risulta in qualcosa di meno goffo dato che l'osservatore che tu passi farà esattamente lo stesso di quello che hai passato a' eventSource .subscribe', quindi vediamo le proposte di altre persone. – user3743222
@ user3743222 - onEvent è una funzione che scrivo, il mio framework (loopback) conosce la funzione esistente e la chiama dal proprio codice. Non è possibile utilizzare i metodi fromEvent() o fromEventPattern() poiché non corrispondono al metodo di registrazione dei gestori del framework. – JBCP