3

サブスクライブのエラー コールバックが JSON トラフ マップ関数にマップされていません! なんで?

this.http.get("/something")
            .map((response: any) => response.json())
            .subscribe((response: any) => {
                  // response is body of request
            }, (error: any) => {
                // error must be mapped again
                let error = JSON.parse(error._body);
            });
4

2 に答える 2

1

から返された Observable にはget()エラーがあるため、map()渡された関数は呼び出されません (イベントが発行されないため)。つまり、アロー関数(response: any) => response.json()は呼び出されません。むしろ、何かがそれをキャッチするまで、エラーは伝播します。何もエラーがキャッチされない場合は、ブラウザー コンソールに例外が表示されます。

.catch()および/または でエラー ハンドラを指定することにより、エラーをキャッチできますsubscribe()

httpここで堅牢なエラーハンドラーを作成しようとしました: https://stackoverflow.com/a/35329086/215945 または
から生成されたエラーをキャッチします。.get().json()

于 2016-02-19T03:56:15.957 に答える