调用void方法并传递trought参数RxJava

时间:2016-11-10 10:24:33

标签: java android rx-java

我正在寻找更好的方法:

mRestService.login(email, password) // Login user in
                .flatMap(user -> Observable.zip(
                        mRestService.start(user._token), // Start his session
                        Observable.just(user),
                        (v, u) -> (User) u // Pass user throught
                ))
                .subscribe(user -> {
                }, throwable -> {                     
                });

但我没想出更好的东西。

2 个答案:

答案 0 :(得分:1)

start上的mRestService方法执行副作用。因此,您可以使用doOnNext方法来处理这种副作用。

 mRerstService.login(email, password)
              .doOnNext(u -> mRestService.start(user._token))
              .subscribe(); 

答案 1 :(得分:0)

您应该在flatMap中调用mRestService.start(user._token)。用户对象将传递给subscribe,您可以在其中使用它。

 mRestService.login(email, password) // Login user in
                .flatMap((user -> mRestService.start(user._token)))
                .subscribe(user -> {
                }, throwable -> {
                });