我正在使用Single.fromCallable,如下所示:
lateinit var appAPI: AppAPI
fun getUsersLinkedInSettings() {
Single.fromCallable {
appApi.getSettings()
}
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
.subscribe(
{ result -> onRetrieveUserSettingsSuccess(result) },
{ onRetrievePostListError() }
)
}
private fun onRetrieveUserSettingsSuccess(userSettings: UserSettings) {
}
appApi定义如下:
interface AppAPI {
@GET("/settings")
fun getSettings(): Single<UserSettings>
}
我收到一个编译错误,期望结果为UserSettings,但发现为Single。如何将Single转换为UserSettings
答案 0 :(得分:2)
getSettings
返回Single<UserSettings>
。在您的代码中,您用Single.fromCallable
将其包装起来,因此结果为Single<Single<UserSettings>>
。
尝试直接致电getSettings
。
appApi
.getSettings()
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
.subscribe(
{ result -> onRetrieveUserSettingsSuccess(result) },
{ onRetrievePostListError() }
)