首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Monix任务中为空

Monix任务中为空
EN

Stack Overflow用户
提问于 2019-03-15 19:53:02
回答 1查看 172关注 0票数 0

项目反应器有一些类似Mono.emptyT的东西,它可以在特殊情况下处理,当你没有任何东西时,它被评估。在Monix Task中有类似的东西吗?

代码语言:javascript
复制
def getItemFromList[T](inp: Mono[List[T]]): Mono[T] = {
    val moList = inp.defaultIfEmpty(List[T]())
    moList.flatMap[T]((list: List[T]) => {
      if (list.isEmpty) Mono.empty[T]()
      else Mono.just(list.head)
    })
  }

在这里,我试图从一个项目列表中提升一个项目,在这个列表中,当从数据库读取时,这个列表可能不存在。我不想发送像Mono.just(List())这样的东西,因为这将需要我在db调用端添加另一个空/null检查。

EN

回答 1

Stack Overflow用户

发布于 2019-03-18 19:57:28

Monix的Task和项目反应堆的Mono在逻辑上是不同的。Mono可以完成为"nothing",而Task只能完成为"something“,或者根本不完成(这更有意义)。

为了正确描述你的Task问题,你必须使用类似Task[Option[T]]的东西,然后返回Task.now(None)或者转移到Monix的Observable,它对一个元素流(也可以是空的)进行建模。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55182039

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档