我有一个通过改造调用 API 的 rx 链。我订阅了我的 API 服务,使用标准的 rxsubscribe({...})
方法并将 lambda 传递给它。不幸的是,当我的调用最终完成时,我添加的要在 lambda 中执行的所有代码都被完全忽略了。AndroidStudio 提出了一个修复程序,它基本上run
为我的 lamda 添加了一个内联函数,并且......它神奇地工作。我不知道发生了什么。为什么没有它就行不通run
?做什么run
?
代码如下:
valuesServiceApi.getValues()
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
.subscribe({ data ->
run { //<- What's this?
val cs = data.creditReportInfo.score
view.setCreditScore(cs)
Logger.getLogger("success:").info("credit score $cs")
}
})