Slide 7
Slide 7 text
実際にAPIを叩いてみる場合。
fun main(args: Array) = runBlocking {
(1..5).forEach { i ->
val result = async { callApi() }
val result2 = async { callApi() }
println(result.await())
}
println("end")
}
suspend fun callApi(): String {
val url = URI("https://example.com")
val client = HttpClient.newBuilder().build()
val handler = HttpResponse.BodyHandlers.ofString()
val request = HttpRequest.newBuilder().uri(url).build()
return withContext(Dispatchers.IO) {
client.send(request, handler)
.body()
}
}
withContext: バックグラウンドで非同期処理をする。