RxJSについて、おそらく大変初歩的な質問だと思うのですが、ご教授下さい。
ObservableをsubscribeしたときのonNext中の処理において例外が発生したとき、その例外をキャッチするにはどのように書けば良いのでしょうか?
現在は下記のように書いていますが、try/catchでもキャッチできず、catchErrorにもonErrorにも入らないため、subscribeが終了しない状態で固まってしまいます。
TypeScript
1observable.pipe( 2 catchError((error) => { 3 console.log('catchError'); 4 throw error; 5 }) 6).subscribe( 7 // onNext 8 (x) => { 9 // 例外を投げるメソッド 10 try { 11 this.throwMethod(); 12 } catch (e) { 13 throw e; 14 } 15 }, 16 // onError 17 err => { 18 console.log('onError'); 19 throw err; 20 } 21); 22 23// 例外を投げるメソッド 24throwMethod () { 25 observable2. 26 subscribe( 27 // これが例外を投げる場合がある 28 this.getObservable3() 29 .pipe( 30 catchError((err) => { 31 throw(err); 32 } 33 ) 34 .subscribe( 35 (x) => { 36 // 正常時の処理 37 }, 38 err => { 39 throwError(err); 40 } 41 ); 42 ) 43}
どうぞよろしくお願い致します。
try/catchでも例外が捕捉できないということは例外の投げ方が間違っているのではないでしょうか?throwMethodの中身も載せていただいたほうがいいと思います。あとcatch節の中で再度例外をthrowしているのは意味のないコードでは…?
回答2件
あなたの回答
tips
プレビュー