Sobes.tech
Junior

O método data task é executado de forma síncrona ou assíncrona?

sobes.tech IA

Resposta da IA

De forma assíncrona.

// URLSessionDataTask é executado de forma assíncrona.
// Ele devolve o controlo imediatamente,
// e o resultado (dados, resposta, erro) é passado ao manipulador de conclusão
// após a requisição de rede terminar num thread de fundo.
let task = URLSession.shared.dataTask(with: url) { data, response, error in
    // Este bloco de código é executado de forma assíncrona
    // após receber a resposta do servidor ou ocorrer um erro.
    if let data = data {
        print("Dados recebidos: \(data.count) bytes")
    } else if let error = error {
        print("Erro: \(error.localizedDescription)")
    }
}

// Iniciamos a tarefa.
// O método resume() simplesmente coloca a tarefa na fila.
task.resume()

// O código após task.resume() é executado imediatamente,
// sem esperar que a requisição de rede termine.
print("Tarefa iniciada...")