我正在对API进行嵌套调用。最终结果是数千次通话。最终用户希望这样的迭代器:
Iterator[Map[String,String]]
在切换到下一个阶段之前,我不想遍历每个叶子调用。
在下一个状态下,迭代器由另一种方法消耗,该方法将每个Map
作为行插入db中。
由于Iterator
可能很大,并且可能包含导致失败的不良行,因此提取方法ingestIterator
还会返回Future
def ingestIterator(i: Iterator[Map[String,String]]): Seq[CustomFuture[Boolean]]
所以整个事情看起来像
def getStates(url:String): List[String]
def getcounties(states: List[String]): List[String]
def getBlocks(stateCounties: List[String]): Iterator[Map[String,String]]
def getEverything(): Future[Iterator[Map[String,String]]]
但是ingestIterator
需要一个迭代器,我试图找出在此处插入异步性的最佳实践是什么。