私のアプリケーションを強制終了する例外が発生しているので、catch()/ consumeすることはできません。私はこれにはとても新しいので、おそらくcatch
で何か問題が起きていますか?rxjs Observable.catch()が動作しない
private callConfigService(): Observable<Map<string,string>> {
try {
let confObs = this.contentService.fetchContentUsingGET(id, store, locale, null, false)
.catch((res) => {
console.log('Retrieving config FAILED! ', res); // not hit
return Observable.from([new Map<string,string>()]);
}
).subscribe(
(res) => { console.log('fetchContentUsingGET : ', res); }, // not worried about success scenario
(err) => { console.log('error response: ', err); } // not hit
);
} catch (exception) {
console.log('???', exception); // not hit
} finally {
console.log('?????'); // hit
}
return Observable.of(new Map<string,string>()); // not hit
}
残念ながらfetchConfigUsingGET
コールは、ライブラリからあるので、私は内部だかわからないんだけど。しかし私は電話しなくても404例外が発生するので、熱い観測可能なように見えるsubscribe()
catch()
が完全にスキップされた理由は何ですか?
Uncaught * e {_body: "{"status":404,"error":"StatusCodeError","data":"404 - undefined"}", status: 404, ok: false, statusText: "Not Found", headers: t…} bundle.umd.js:5
実際に* 'confObs'をどこでも使用していますか?あなたが見ているエラーメッセージは何ですか? – jonrsharpe
いいえ、私は全くそれを使用しない、上記の宣言はそれです。これはすべてフレームワークの一部であり、スタンドアロンの例を得るのは難しいですが、エラーは次のようなものです: 'EXCEPTION:ステータス付きレスポンス404 URL for URL: ' – user2759883
' 'catch''は、例外がスローされたときに呼び出されます。あなたが言ったように、 '' fetchConfigUsingGET''の動作が4xx httpステータスコードの例外をスローするhttp get呼び出しと同じであるかどうかを知ることはできません。 '' confObs''を購読して、あなたが得るものを見てください。 – Matt