Scala任务返回映射 [英] Scala Task return mapping
本文介绍了Scala任务返回映射的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我有一个方法readHeader,该方法带有一个参数并返回 Task [List [Header]] ,另一种方法要求多个ID并返回 List [Task [List [EquipmentHeader]]] . 如何返回与多个ID读取功能兼容的 Task [List [List [List [Header]]] ".
I have a method readHeader which takes one argument and returns Task[List[Header]] and another method calls for multiple ids and returns List[Task[List[EquipmentHeader]]]. How to make a return of Task[List[List[Header]]] compatible with multiple id read function.
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]]]
}
}
推荐答案
您可以在
You can use traverse
from cats:
import cats.implicits._
ids.traverse(m1.readHeader) // Task[List[List[Header]]]
这篇关于Scala任务返回映射的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文