首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在循环中逐一调用Kotlin RxJava接口,如果任何接口响应有期望的结果,则终止循环

问在循环中逐一调用Kotlin RxJava接口,如果任何接口响应有期望的结果,则终止循环
EN

Stack Overflow用户
提问于 2021-04-23 16:06:23
回答 1查看 11关注 0票数 0

我想为列表中的每一项调用API,当收到的响应有期望时,result将返回并终止循环。

我当前的代码:

代码语言:javascript
复制
Observable.from(riffInPlayerSubscription)
.flatMap { item ->
   API.getAccessCheck(accessToken, item.itemId)
 }.flatMap { itemAccessResponse ->

                                    if (!itemAccessResponse.isExpired()) {
                                        credentialStore.hasActiveSubscription = true
                                        return@flatMap Observable.just(true)
                                    }
                         
}

但它会对所有项目进行循环,并且不会终止。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-04-23 17:06:43

使用skipWhile和take

代码语言:javascript
复制
Observable.from(riffInPlayerSubscription)
.flatMap { item ->
   API.getAccessCheck(accessToken, item.itemId)
}
.skipWhile { it.isExpired() }
.take(1)
.map { 
   credentialStore.hasActiveSubscription = true
   true
}
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/67226237

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档