Single.fromCallable未正确实现

时间:2019-05-19 16:28:11

标签: kotlin rx-java2

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

1 个答案:

答案 0 :(得分:2)

getSettings返回Single<UserSettings>。在您的代码中,您用Single.fromCallable将其包装起来,因此结果为Single<Single<UserSettings>>

尝试直接致电getSettings

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