Coroutines
例えばListの各値に対して非同期に処理を開始してその全ての結果を待って通知したいとする。 こういったときはcoroutineScope内でListの項目ごとにasyncしてdeferredのlistを作りawaitAll()すればよい。結果もListとして受け取ることができる。 suspend fun …
coroutineScope { list.map { async { updateListItem(it) } } .map { val updated = it.await() ... } } 最初のmapで処理を走らせてしまうと処理待ちになって逐次実行になる。そのためまず最初のmapですべてのListの項目の処理を遅延実行し、次のmapで各処…
自分の中で混乱してきたので整理する。 環境 Kotlin 1.2.71 Kotlin Coroutines 0.30.1 本題 以下のようなClean Architecuteベースの設計のアプリがあるとする。 このときKotlin Coroutineを使って非同期処理を行ってUIを更新するとする。 各クラスの責務を分…