【发布时间】:2019-04-16 08:15:21
【问题描述】:
我正在使用 rx kotlin,但还没有完全理解。我正在尝试遍历查询列表,并一一执行它们。在这个列表中,我有一个特殊的字符串,一旦到达,我想打破循环并执行另一个功能
如何在下面的示例中执行此操作?
fun runQueries() {
Observable.fromIterable(queriesTemp)
.subscribeOn(Schedulers.computation())
.doOnNext { query ->
if (query.contains("COMPLETION OF SDF QUERIES")) {
if (loginStatus == StaticVariables.FT_CASE_NEW_LOGIN) {
tasksQueriesTemp = arrayOfNulls(queries.size - queries.indexOf(query))
System.arraycopy(queries, queries.indexOf(query), tasksQueriesTemp, 0, tasksQueriesTemp!!.size)
}
// break the loop here
runOtherQueries()
break
}
if (!TextUtils.isEmpty(query)) {
mDatabase.execSQL(query, false, "")
}
action(tasksQueriesTemp!!.indexOf(query))
}
.doOnComplete { executeOtherUpdates(tasksQueriesTemp) }
.observeOn(AndroidSchedulers.mainThread())
.subscribe()
}
fun runOtherQueries() {
}
【问题讨论】:
-
这取决于“执行另一个功能”实际上是什么。您能否发布一个示例,您的意思是什么。此外,您可能希望将
observeOn移动到底部(或根本没有),因为您可能会通过此设置获得NetworkOnMainThreadException。 -
@akarnokd 请找到我编辑的描述。我只是想打破循环并运行不同的功能。所以我的问题只是如何打破循环