Retrofit + RxJava (+RxAndroid) で以下のようなちょっと複雑なユースケースはどう書けばよいのかなと調べてみたら defer と onErrorResumeNext を使えばよいんじゃないか、という話 (ただしRetrofitは関係ない話になった)。 参考: retrofit with rxjava handling network exceptions globally ユースケース ユーザ情報を取得するAPIを叩く(認証が必要なAPI) 401が返ってきたら、アクセストークンを再度取得する処理を行う アクセストークンの再取得に成功した場合は、新しいアクセストークンを使って、もとのリクエスト(ユーザ情報の取得)をもう1回行う アクセストークンの再取得に失敗した場合は、ログイン画面に飛ばす 実装 private void getUser() { Observabl