私は実装している関数を呼び出すフレームワークを扱っています。私は、この関数のパラメータをObservableに変換し、一連のオブザーバを介して送信したいと思います。私はこのために主題を使うことができると思ったが、私が期待したように行動していない。RxJS:オブザーバが複数のオブザーバを処理する方法は?
明確にするために、私は次のコードのようなものを持っています。私はOption 1
が動作すると思っていましたが、今のところ私はOption 2
のために解決しています。それはまったく慣れないようです。
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');
}
);
}
あなた自身を登録し、何かその 'onEvent'ハンドラですか? – user3743222
いずれにしても、私が 'Subject.create(observer、observable)'を使っていると思うことは、あなたが渡すオブザーバが 'eventSource 'に渡したものとまったく同じことをするので、 .subscribe'ので、他の人の命題を見てみましょう。 – user3743222
@ user3743222 - onEventは私が書いた関数ですが、私のフレームワーク(ループバック)は関数が存在することを知り、それ自身のコードから呼び出します。 fromEvent()またはfromEventPattern()メソッドは、フレームワークのハンドラの登録方法と一致しないため、使用できません。 – JBCP