How do I handle cancellation and timeouts?

Handling cancellation and timeouts in Swift can be achieved using various mechanisms, such as the `URLSession` for network requests or using `DispatchWorkItem` for tasks. Below is a simple example of how to manage these scenarios effectively.

// Example of handling cancellation and timeout let url = URL(string: "https://example.com/api")! var task: URLSessionDataTask? func fetchData() { let session = URLSession.shared let request = URLRequest(url: url, timeoutInterval: 5.0) // Timeout after 5 seconds task = session.dataTask(with: request) { data, response, error in if let error = error { print("Error occurred: \(error.localizedDescription)") } else if let data = data { print("Data received: \(data)") } } task?.resume() } func cancelFetch() { task?.cancel() // Cancel the ongoing task print("Fetch cancelled") }

Cancellation Timeouts Swift URLSession DispatchWorkItem