首页 > 解决方案 > Single.fromCallable 未正确实现

问题描述

我正在使用 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

标签: kotlinrx-java2

解决方案


getSettings返回Single<UserSettings>。在您的代码中,您将其包装Single.fromCallableSingle<Single<UserSettings>>.

尝试getSettings直接调用。

appApi
    .getSettings()
    .subscribeOn(Schedulers.io())
    .observeOn(AndroidSchedulers.mainThread())
    .subscribe(
        { result -> onRetrieveUserSettingsSuccess(result) },
        { onRetrievePostListError() }
    )

推荐阅读