Single.fromCallable не правильно реализован - PullRequest
0 голосов
/ 19 мая 2019

Я использую 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 Ответ

2 голосов
/ 19 мая 2019

getSettings возвращает Single<UserSettings>.В вашем коде вы заключаете его в Single.fromCallable, поэтому получается Single<Single<UserSettings>>.

Попробуйте вызвать getSettings напрямую.

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