Извлечь и вернуть объект из Single в rxjava - PullRequest
0 голосов
/ 05 января 2019

У меня есть следующий метод, который возвращает Single:

override fun getNavItemById(dCSServiceContext: DCSServiceContext):Single<NavItem>{
        return scribeProvider.getNavItemById(dCSServiceContext).map{ navItem ->
            return@map scribePresenter.presentNativeItem(navItem)
        }
    }

Но мне нравится, что этот метод возвращает только объект, что-то вроде:

override fun getNavItemById(dCSServiceContext: DCSServiceContext):NavItem{
        return scribeProvider.getNavItemById(dCSServiceContext).map{ navItem ->
            return@map scribePresenter.presentNativeItem(navItem)
        }// I need just the object in order to pass this result as a parameter to other method
    }

Есть идеи, как сделать это элегантно?

Большое спасибо!

1 Ответ

0 голосов
/ 08 января 2019

добавление .blockingGet() в конец вашего потока должно помочь. Он вернет фактическое значение вместо Single

Это должно выглядеть примерно так

return scribeProvider.getNavItemById(dCSServiceContext)
.map { navItem -> return@map scribePresenter.presentNativeItem(navItem) 
}.blockingGet()
...