在 play-scala 应用程序中,我进行了 WS 调用:
def getaddresses : ListBuffer[String] = {
var lb = new ListBuffer[String]()
var url = "xyz@xyx.com/someapi"
WS.url(url).get.map {
response =>
var emailsSeq = (response.json \\ "email")
emailsSeq.foreach(lb+=_.toString())
lb.foreach(println) //This is filled with values
}
lb.foreach(println) //This is empty
lb
}
在 map 内部,返回一个序列,我将其条目放入 ListBuffer lb 中以由该方法返回。问题是 ListBuffer 在 map{} 内显示值,但不在其外显示。结果,从该方法传递了空的 ListBuffer。
我认为 ws 响应可能会有延迟,所以尝试了以下没有优势的方法:
WS.url(url).withRequestTimeout(10.seconds).get.map {
请帮助我获得要返回的填充列表缓冲区