阻塞不好,异步好,但是在未来阻塞仍然阻塞吗?这是我不断回来的东西;考虑以下伪代码:
def queryName(id:Id):Future[String]
def queryEveryonesNames:Future[Seq[String]] = {
val everyonesIds:Future[Seq[Id]] = getIds
val everyonesNames:Future[Seq[Future[String]]] = {
everyonesIds.map(seq.map(id=>queryName(id)))
}
// I'm trying to understand the impact of what I'll do below
everyonesNames.map(seq=>seq.map(fut=>blocking(fut, 1 s)))
}
queryEveryonesNames
在最后一行中,我通过阻塞内部的future 变成了Future[Seq[Future[String]]]
(notice future within future)。Future[Seq[String]]
在未来中阻止未来感觉是多余的,至少在这里是这样,但在未来中拥有未来也感觉多余。
你能提出一个更聪明的方法来摆脱内心的未来吗?
你认为在未来中封锁未来是坏事吗?如果是这样,为什么以及在什么情况下?