2017-11-10 14 views
0

localStorageからトークンを戻してエラーをキャッチしたい。Rx.Observable.Ofエラーがキャッチされていない

Observable.of(JSON.parse(localStorage.getItem('currentUser')).token) 
.catch((er) => Observable.of(console.log(er)) 

しかし、それをキャッチしません。面白いのは、私が試してキャッチメソッドを使用すると、私はエラーをキャッチすることができます

try { 
     return Observable.of(JSON.parse(localStorage.getItem('currentUser')).token); 
    } catch (er) { 
     console.log(er); 
    } 

その理由は何ですか?誰かが助言を与えることを望みます。 enter image description here ありがとう

+0

はあなたのポストでのgetItemコードを置くことができますか? – mickaelw

+0

@mickaelw .Ok私は付けました。ご確認ください –

+0

あなたの誤りですか?私のために、私はちょうど未定義の変数を持っているが、キャッチされたゼロエラーは – mickaelw

答えて

1

結果がObservable.ofに渡される前にエラーがスローされるためです。これはRxJSとは無関係です。つまり、JSインタプリタによってステートメントの順序がどのように実行されるかです。

あなたは、たとえば行うことができます。

Observable.defer(() => Observable.of(JSON.parse(localStorage.getItem('currentUser')).token)) 
    .catch(???) // returning Observable.of(console.log(er) is probably useless 
+0

ありがとう@martin。それは魅力のように働いた。しかし、localstorageからトークンを取得し、エラーをキャッチする別の方法を提供できますか?これは、この方法でトークンを取得するための全体的なソリューションが理想的ではないためです。前もって感謝します。 –

関連する問題