1
我必须查询带分页的API。但是因为API很奇怪,我必须查询它直到响应为空(不包含任何项目)。斯卡拉,无最大值寻呼
实际上它是用Java语言写有一个做,而:
do {
objects = doQuery(from);
from += 200
} while (!objects.isEmpty())
但我想它转换成阶。我最初的想法是使用流与步和takeWhile:
Stream.iterate(0)(_+200)
.map(from => doQuery(from))
.takeWhile(objects -> !objects.isEmpty)
但另一个变化使doQuery
返回Future
。因此,我无法在takeWhile中进行测试,也没有关于如何做的最佳方法(可能是递归调用)。 希望这个新代码将是为阿卡演员会告诉其他每个对象(不需要任何回报)
只要你不暴露可变状态,你可以在scala中确定/确定。 – dveim
@dveim谢谢。是的,我知道,只是愿意使用更“实用”的风格。 –
你想要一个扫描副作用的流,所以我会去fs2或akka-streams,可能会比stdlib流有点痛苦。 – Reactormonk