RxJavaを初めて使用しています。私の経験は、主にそれらのチュートリアルからです: Hereとhereです。RxJava:observableが終了したときを知り、ブール値を返します。
今、私はRetrofit2でAPI呼び出しを受けて、Obesrvable<AccessToken>
を返す状況に遭遇しました。
Authenticator
と呼ばれるクラスは、クライアントからの
#authenticateWithClientCredentials()
を呼び出します
public Observable<TokenResult> authenticateWithClientCredentials() {
return authService.authenticate("client_credentials").take(1);
}
を次のようにクライアントは、このサービスを呼び出します。私が達成したい何
は、APIコールがアクセストークンがフェッチされ、正常Authenticator
クラス内のキャッシュに保存されたことを示すためにonComplete()
の内側、すなわち、終了すると、Authenticator
クラスからObservable<Boolean>
を返すことです。
私はdefer
演算子を試しましたが、まだ失われています。
EDIT
私はパラメータにコールバックを渡すことができます知っているが、古い古典的なコールバックアプローチを置き換えるためのRxの考えではないでしょうか?
は私が望んでいない、非常に答えてくれてありがとう、しかし。 #authenticateWithClientCredentialsはAuthenticatorクラスのメソッドではなく、Clientクラスのメソッドです。オーセンティケータはauthenticateWithClientCredentialsを呼び出し、トークンをキャッシュします。その後、トークンがキャッシュに正常に設定されたことを示すObservableを返すようにします。 –
@MotassemJalal、更新 – azizbekian
あなたは私に説明してもらえますか?(そして理由は)Completableがより好ましいですか? –