我是Rxjava2的新手。我有这些方法。 getCategoriesWithScripts()进行2个API调用:
第一个返回所有类别(及其名称和ID
第二个需要一个类别ID来向API询问与每个类别相关联的脚本列表。
我需要这些来显示所有类别及其所有脚本(并使用这些脚本填充适配器)。
private fun getCategoriesWithScripts(userId: Long, cacheStrategy: CacheStrategy, str: String) : Single<List<ScriptEntityWrapper>> {
return categoryManager.retrieveCategories(cacheStrategy, userId) // User must not be null
.flattenAsObservable { it }
.flatMap { category->
return scriptManager.retrieveScripts(category.id, cacheStrategy)
.flattenAsObservable { it }
.filter {
it.name.toLowerCase().contains(str!!.toLowerCase(), true) // add the filter on the meta-data here
}
.map { project -> ScriptEntityWrapper(project) }
.toList()
.map {
it
}
}
}
private fun loadData(reload: Boolean, str: String) {
getCategoriesWithScripts(userId, cacheStrategy, str)
.subscribeOn(Schedulers.newThread())
.observeOn(AndroidSchedulers.mainThread())
.doOnSubscribe { .... }
.doAfterTerminate { .... }
.autoDisposable(....))
.subscribe({
adapter?.clear()
adapter?.add(ScriptEntityWrapper(getString(R.string.scripts_activity_choose_script_title)))
adapter?.addAll(it)
}, { error ->
adapter?.clear()
Logger.error("Failed to retrieve scripts", error)
})
}
我遇到了错误"return" is not allowed here
。我不知道代码有什么问题。请帮助