2016-06-29 19 views
2

を与えます。私は同じようなエラーを記述したthis質問を見つけました。答えは私の状況に合わないようでした。ここに私のコードは次のとおりです。は私が<code>Subject</code>から作成<code>Observable</code>に加入しようとしている、と私はエラーハンドラなしで加入したときに、私はエラーを取得する<code>this._subscribe is not a function</code>「this._subscribeは関数ではありません」

const subject = new Rx.Subject(); 
subject 
    .withLatestFrom(otherObservable) 
    .subscribe(
     values => { 
      // some logic 
     } 
    ); 

私も試してみました:

const subject = new Rx.Subject(); 
subject 
    .withLatestFrom(otherObservable) 
    .subscribeOnNext(
     values => { 
      // some logic 
     } 
    ); 

と私は同じエラーを取得します。ここで私はちょうどsubscribeしようとすると、スタックトレースは次のとおりです。

Observable.Rx.Observable.observableProto.subscribe.observableProto.forEach (/home/ryan/code/redurx/node_modules/rx/dist/rx.js:2034:19)                   
WithLatestFromObservable.subscribeCore (/home/ryan/code/redurx/node_modules/rx/dist/rx.js:4084:33)                            
WithLatestFromObservable.tryCatcher (/home/ryan/code/redurx/node_modules/rx/dist/rx.js:63:31)                             
setDisposable [as action] (/home/ryan/code/redurx/node_modules/rx/dist/rx.js:2082:46)                               
ScheduledItem.invokeCore (/home/ryan/code/redurx/node_modules/rx/dist/rx.js:896:33)                                
ScheduledItem.invoke (/home/ryan/code/redurx/node_modules/rx/dist/rx.js:884:40)                                 
runTrampoline (/home/ryan/code/redurx/node_modules/rx/dist/rx.js:1125:37)                                  
tryCatcher (/home/ryan/code/redurx/node_modules/rx/dist/rx.js:63:31)                                    
CurrentThreadScheduler.schedule (/home/ryan/code/redurx/node_modules/rx/dist/rx.js:1141:45)                              
WithLatestFromObservable.Rx.ObservableBase.ObservableBase._subscribe (/home/ryan/code/redurx/node_modules/rx/dist/rx.js:2095:32)                     
WithLatestFromObservable.Rx.Observable.observableProto.subscribe.observableProto.forEach (/home/ryan/code/redurx/node_modules/rx/dist/rx.js:2034:19) 

を、これは私がsubscribe() => nullような些細なエラーハンドラを渡すとsubscribeOnNext

Observable.Rx.Observable.observableProto.subscribe.observableProto.forEach (/home/ryan/code/redurx/node_modules/rx/dist/rx.js:2034:19) 
    WithLatestFromObservable.subscribeCore (/home/ryan/code/redurx/node_modules/rx/dist/rx.js:4084:33) 
    WithLatestFromObservable.tryCatcher (/home/ryan/code/redurx/node_modules/rx/dist/rx.js:63:31) 
    setDisposable [as action] (/home/ryan/code/redurx/node_modules/rx/dist/rx.js:2082:46) 
    ScheduledItem.invokeCore (/home/ryan/code/redurx/node_modules/rx/dist/rx.js:896:33) 
    ScheduledItem.invoke (/home/ryan/code/redurx/node_modules/rx/dist/rx.js:884:40) 
    runTrampoline (/home/ryan/code/redurx/node_modules/rx/dist/rx.js:1125:37) 
    tryCatcher (/home/ryan/code/redurx/node_modules/rx/dist/rx.js:63:31) 
    CurrentThreadScheduler.schedule (/home/ryan/code/redurx/node_modules/rx/dist/rx.js:1141:45) 
    WithLatestFromObservable.Rx.ObservableBase.ObservableBase._subscribe (/home/ryan/code/redurx/node_modules/rx/dist/rx.js:2095:32) 
    WithLatestFromObservable.Rx.Observable.observableProto.subscribeOnNext (/home/ryan/code/redurx/node_modules/rx/dist/rx.js:2046:19) 

私にはないしようとすると、スタックトレースですエラーを取得します。何か案は?

+0

observableではないotherObservableに問題がある可能性があります – user3743222

+0

ユニットテストでこのエラーが発生しました。新しいObservable()をotherObservableとして渡しています。場合。 –

+0

Observableに値などが設定されていないという問題がある場合を除きます。 –

答えて

0

user3743222のおかげでわかりました。あなたは普通の観察可能なものを購読することはできません(論理的には実際に)。観察する価値があるように構築する必要があります。私のユニットテストでotherObservableの初期化をnew Rx.Observable()からRx.Observable.just(1)に変更しました。これでサブスクライブすることができます。なぜなら、私がonNextonErrorハンドラの両方を渡したときに、同じエラーをスローしなかったのは少し混乱しています。しかし、私はそれを取る。

+1

私は '新しいRx.Observable()'が正直であるとAPIの一部だとは思わない。あなたは文書をチェックしましたか? Observable.createを介して、またはRx.Observable.fromなどの特定の数の作成演算子を介して、オブザーバブルを作成します。オブザーバブル作成のための演算子のリストを見つけることができますここでは:https://github.com/Reactive-Extensions/RxJS/blob/master/doc/gettingstarted/categories.mod – user3743222

+0

また、どのように観測可能な作品を理解したい場合は、次の質問を見ることをお勧めします。これは、データおよびサブスクリプションの流れをフードの下で調べるのに役立ちます。 http://stackoverflow.com/questions/32190445/hot-and-cold-observables-are-there-hot-and-cold-operators/34669444#34669444 – user3743222

+0

私はあなたが観測可能なコンストラクタについて正しいと思います。私は観察可能なものをかなりうまく使う方法を理解しています。私はテスト目的のために自明に構築しようとしていました。 –

関連する問題

 関連する問題