File tree Expand file tree Collapse file tree 1 file changed +34
-0
lines changed
app/src/main/java/com/lukaslechner/coroutineusecasesonandroid/playground/coroutinebuilders Expand file tree Collapse file tree 1 file changed +34
-0
lines changed Original file line number Diff line number Diff line change
1
+ package com.lukaslechner.coroutineusecasesonandroid.playground.coroutinebuilders
2
+
3
+ import kotlinx.coroutines.async
4
+ import kotlinx.coroutines.delay
5
+ import kotlinx.coroutines.runBlocking
6
+
7
+ fun main () = runBlocking<Unit > {
8
+
9
+ val startTime = System .currentTimeMillis()
10
+
11
+ val deferred1 = async {
12
+ val result1 = networkCall(1 ).also {
13
+ println (" result received: $it after ${elapsedMillis(startTime)} ms" )
14
+ }
15
+ result1
16
+ }
17
+
18
+ val deferred2 = async {
19
+ val result2 = networkCall(2 )
20
+ println (" result received: $result2 after ${elapsedMillis(startTime)} ms" )
21
+ result2
22
+ }
23
+
24
+ val resultList = listOf (deferred1.await(), deferred2.await())
25
+
26
+ println (" Result list: $resultList after ${elapsedMillis(startTime)} ms" )
27
+ }
28
+
29
+ suspend fun networkCall (number : Int ): String {
30
+ delay(500 )
31
+ return " Result $number "
32
+ }
33
+
34
+ fun elapsedMillis (startTime : Long ) = System .currentTimeMillis() - startTime
You can’t perform that action at this time.
0 commit comments