Using the async/await syntax
The async/await syntax is the backbone of this structured concurrency. Let’s begin by understanding the async keyword.
async in Swift means that a function will perform some asynchronous operation, suspending the thread till the operation completes, and returning only when that operation is complete. Unlike a standard function, a function marked with the async keyword doesn’t block the caller but, rather, allows it to continue executing other tasks.
This is useful to perform IO-bound tasks, computationally intensive calculations, networking calls, and file operations, as it won’t stop the CPU while waiting – for instance, while waiting for data from a network operation.
An example of a Swift async function, illustrating the async syntax, is the following example code fragment:
// an example async function
import Foundation
func fetchData() async -> Data {
    // perform a network call
 ... 
                                             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
     
         
                 
                 
                 
                 
                 
                 
                 
                 
                