Kotlin RxJava逐个调用循环中的API,如果任何API响应都有期望的结果,则终止循环
我想为列表中的每个项目调用API,当收到响应时,结果将返回并终止循环 我当前的代码:Kotlin RxJava逐个调用循环中的API,如果任何API响应都有期望的结果,则终止循环,kotlin,rx-java2,Kotlin,Rx Java2,我想为列表中的每个项目调用API,当收到响应时,结果将返回并终止循环 我当前的代码: Observable.from(riffInPlayerSubscription) .flatMap { item -> API.getAccessCheck(accessToken, item.itemId) }.flatMap { itemAccessResponse -> if (!itemAccessRespo
Observable.from(riffInPlayerSubscription)
.flatMap { item ->
API.getAccessCheck(accessToken, item.itemId)
}.flatMap { itemAccessResponse ->
if (!itemAccessResponse.isExpired()) {
credentialStore.hasActiveSubscription = true
return@flatMap Observable.just(true)
}
}
但它对所有项目都进行循环,并且不会终止。使用
skipWhile
和take
:
Observable.from(riffInPlayerSubscription)
.flatMap{item->
API.getAccessCheck(accessToken,item.itemId)
}
.skipWhile{it.isExpired()}
.采取(1)
.map{
credentialStore.hasActiveSubscription=true
真的
}
使用skipWhile
和take
:
Observable.from(riffInPlayerSubscription)
.flatMap{item->
API.getAccessCheck(accessToken,item.itemId)
}
.skipWhile{it.isExpired()}
.采取(1)
.map{
credentialStore.hasActiveSubscription=true
真的
}