我有一种方法 readHeader 接受一个参数并返回任务[列表[标题]]另一个方法调用多个 id 并返回列表[任务[列表[设备标题]]]。
如何退货任务[列表[列表[标题]]]兼容多id读取功能。
trait M1{
def readHeader(id: String): Task[List[Header]]
}
def read(ids: List[String])(implicit m1:M1):Task[List[List[Header]]] = {
if (ids.isEmpty) {
Task(List.empty)
} else {
ids.map(m1.readHeader(_)) //List[Task[List[Header]]]
}
}
您可以使用traverse
from cats https://github.com/typelevel/cats:
import cats.implicits._
ids.traverse(m1.readHeader) // Task[List[List[Header]]]
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)