Jason
01/10/2020, 1:51 AMfun getUserInfo() : Single<UserInfo>
fun save(token: Token) : Completable
fun initialize() {
getUserInfo()
.flatMap {
// Get token from UserInfo : val token = userInfor.getToken()
// Call save(token: Token) method to save data
}
.subscribeOn(<http://Schedulers.io|Schedulers.io>())
.observeOn(AndroidSchedulers.mainThread())
.subscribeBy(
onSuccess = {
// HERE: Using UserInfo to do somtehing
},
onError = {
Log.d(it)
}
)
}
How to write code inside flatMap
block ? ( Or is there other operator suitable with this use case?)Daniel Rodak
01/10/2020, 10:15 AM.flatMap {
// Get token from UserInfo : val token = userInfor.getToken()
// Call save(token: Token) method to save data: save(token).andThen(Single.just(userInfo))
}
uli
01/10/2020, 2:13 PMuli
01/10/2020, 2:15 PMdoOnNext
?Jason
01/14/2020, 2:31 AM.flatMap { userInfo ->
save(userInfor.token()) .onErrorComplete()
.toSingleDefault(userInfo)
}
I wrote like above.Jason
01/14/2020, 2:32 AMdoOnNext
can not be applied because this is Single<T> . It’s emit all in one timeJason
01/14/2020, 9:25 AMuli
01/14/2020, 11:29 AMsave(token)
a side effect? The name suggests, that it modifies global state