scala之调度示例不工作

bonelee 阅读:100 2025-06-02 22:19:02 评论:0

我正在关注 dispatch 中的第一个示例文档-

    val svc = url("http://api.hostip.info/country.php") 
    val country = Http(svc OK as.String) 
    for (c <- country) 
      println(c) 

我没有打印任何输出。当我将其更改为以下以进行阻塞调用时,我得到了输出。

val res = country() 
println(res) 

需要帮助。

完整程序-

import dispatch._ 
object DispatchTest { 
 
  def main(args: Array[String]) { 
    val svc = url("http://api.hostip.info/country.php") 
    val country = Http(svc OK as.String) 
    for (c <- country) 
      println(c) 
  } 
} 

请您参考如下方法:

嗯,这里不确定,但也许问题是你的主线程完成得太快了,后台线程(Dispatch 在其中异步工作)没有时间采取行动?

要检查这一点,您可以尝试插入延迟:

for (c <- country) // Here we spawn a background thread! 
  println(c) 
 
Thread.sleep(500) // So let's wait half a second for it to work 

当然,在实际程序中你永远不需要这样做。

延迟的另一种选择是在 main 的末尾使用 readLine()


标签:Scala
声明

1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,请转载时务必注明文章作者和来源,不尊重原创的行为我们将追究责任;3.作者投稿可能会经我们编辑修改或补充。

关注我们

一个IT知识分享的公众号