问题描述
例如,我有一些错误的IO列表。
val time = LocalDateTime.now()
如果我使用遍历
def print(x: Int) = {
if(x == 3 || x == 4)
IO.raiseError(new RuntimeException("error " + x))
else
IO(println(x))
}
List.range(1,6).map(print)
它只打印1,2,我可以得到一个错误“错误3” 我想打印所有数字
List.range(1,6).map(print)
并获取所有错误列表
1
2
5
我该怎么做?
解决方法
解决方案:
List.range(1,6).traverse(print(_).attempt)
.map(_.collect{case Left(x) => x})