2017-09-28 12 views
1

技術的なエラーを処理するサービスを作成しようとしていますが、問題に直面しています。Typescript - 私がキャッチを呼び出すと観測可能な応答のタイプが変更される

Observable.of(1, 2, 3).subscribe(
    item => {}, // item type is number 
    error => {} 
); 

Observable.of(1, 2, 3).catch(error => { 
    // do something 
    throw error; 
}).subscribe(
    item => {}, // item type is number | {} 
    error => {} 
); 

、観察を引くときなどにのみ番号を入力した項目を維持する方法があります: 返されたアイテムの変更の種類は、私がキャッチをすれば?

コンテキスト:私はthrought複数のサービスのWebサービスのハンドルを共有しようとしている :

  • WepAPI.Serviceは、技術的なエラー(404、500、...)
  • ComponentRelated.Serviceを処理します機能的なプロセスとエラーを処理する
  • コンポーネントは、UIに特定のデータ変換を処理する
  • たぶん

私はそれを良い方法をやっていないよ、何かアドバイス/サンプルが査定される。

感謝

答えて

1

チェックthis

は誤差関数でエラーになりませんキャッチ機能

から、観察を返すことを忘れないでください、.catchの目的は、ストリームを破ることなくフォールバック値を提供します。このフォールバックは別の観測可能なものでなければなりません(ただし、サブスクライブの最初の引数にオブザーバブルの内容を取得します)。

Observable.of(1, 2, 3).catch(error => { 
    const fallbackValue: number = 42; 
    Rx.Observable.of(fallbackValue); 
}).subscribe(
    item => {}, // item type is number 
    error => {} 
); 
関連する問題