Scala Future OnComplete调用 笔记
来源:互联网 发布:python sock.recv 编辑:程序博客网 时间:2024/05/22 04:49
在并发Future中建立API调用,和主线程并发地执行任务
/* 调用远程API,获得传入城市的温度 */ def cityTemp(name:String):Double = { val url = "http://api.openweathermap.org/data/2.5/weather" val cityUrl = s"$url?q=$name&APPID=981224145dabaaf57b51ff469e7f1acd" val json = io.Source.fromURL(cityUrl).mkString val pattern = """.*"temp":([\d]+).*""".r val pattern(temp) = json temp.toDouble }
import concurrent.Futureimport concurrent.ExecutionContext.Implicits.globalimport scala.util.Success def main(args:Array[String]):Unit = { //调用Future.sequence 并发执行Future val cityTemps:Future[Seq[Double]] = Future sequence Seq( Future(cityTemp("Fresno")),Future(cityTemp("Tempe")) ) //Future回调函数,当Future执行完成,会自动调用这个函数,输出函数结果 cityTemps onComplete { case Success(Seq(x, y)) if x > y => println(s"Fresno is warmer: $x K") case Success(Seq(x, y)) if y > x => println(s"Tempo is warmer: $y K") } //OnComplete调用对变量的影响 var temp = 0.0d; cityTemps onComplete { case Success(Seq(x, y)) if x > y => temp = x case Success(Seq(x, y)) if y > x => temp = y } //主线程继续执行,为了看到OnComplete的执行结果,等待10秒 //temp before complete: 0.0 println("temp before complete: " + temp) Thread.sleep(10000) //temp after complete: 294.0 println("temp after complete: " + temp) println("result complete") }
阅读全文
0 0
- Scala Future OnComplete调用 笔记
- scala future/promise usage
- 友盟分享时会重复调用onComplete回调方法
- Future与Promise in Scala
- Scala 异步编程之 Future
- $.parser.onComplete
- Selasforce oncomplete
- scala进阶:Future的理解及使用
- Scala中使用Future进行并发处理
- Scala future 回调函数方法
- Scala 异步编程之 Future (二)
- Scala 中应用 Future 并发编程
- Future,Callable学习笔记
- Future接口学习笔记
- Scala 学习笔记(一)------函数传名调用(call-by-name)
- Future 模式(异步调用)
- Future 模式(异步调用)
- Future模式(异步调用)
- java常用设计模式
- Qt常用类QLabel
- 应聘恩智浦时考察正则表达式
- 十分钟学会Charles抓包(iOS的http/https请求)
- ios runtime最常见的应用
- Scala Future OnComplete调用 笔记
- Linux-第八单元总结
- POJ1815 Friendship 最小点割集
- TypeScript
- 为什么你的电脑垃圾软件那么多?你有没有试过这些网站去下载?
- 文章标题
- Linux一些注意的地方
- mybatis使用注解方式的删除更新操作
- ios 手动倒入第三方报错