Exploring the basic elements of coroutines
A very simplistic approach for getting async work done with coroutines could be expressed as follows: first, define the suspended functions and then create coroutines that execute the suspended functions.
Yet, we're not only unsure what suspending functions look like, but we also don't know how to allow coroutines to perform asynchronous work for us.
Let's take things, step by step, and start with the two essential actions that we need to execute async work with coroutines:
- Creating suspending functions
- Launching coroutines
All of these terms make little sense now, so let's address this, starting with suspending functions!
Creating suspending functions
The first thing that we need in order to work with coroutines is to define a suspending function where the blocking task resides.
A suspending function is a special function that can be paused (suspended) and resumed at some later point in...