1

我有下一个方法,它返回一个 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
    }

关于如何优雅地做到这一点的任何想法?

非常感谢!

4

1 回答 1

1

添加.blockingGet()到流的末尾应该可以解决问题。它将返回实际值而不是 Single

它应该看起来像这样

return scribeProvider.getNavItemById(dCSServiceContext)
.map { navItem -> return@map scribePresenter.presentNativeItem(navItem) 
}.blockingGet()
于 2019-01-08T01:25:14.953 回答