Sobes.tech
Middle — Middle+

Como pode usar async/await para executar solicitações sequencialmente, com a possibilidade de terminar o processo após a terceira solicitação, sem esperar pela quarta?

sobes.tech IA

Resposta da IA

Para realizar pedidos sequenciais usando async/await e ter a possibilidade de interromper o processo após o terceiro pedido, pode usar um ciclo simples com uma verificação do resultado ou um contador. Por exemplo, em Swift:

func performRequests() async {
    for i in 1...4 {
        let result = await makeRequest(number: i)
        print("Pedido \(i) concluído com resultado: \(result)")
        if i == 3 {
            print("A terminar o processo após o terceiro pedido")
            break
        }
    }
}

func makeRequest(number: Int) async -> String {
    // Simulação de uma solicitação assíncrona
    try? await Task.sleep(nanoseconds: 1_000_000_000) // 1 segundo
    return "Resposta \(number)"
}

Neste exemplo, as solicitações são feitas sequencialmente porque usamos await dentro do ciclo. Após o terceiro pedido, o ciclo é interrompido com a instrução break, e o quarto pedido não é executado.

Assim, async/await permite escrever código assíncrono que parece síncrono, controlando facilmente a lógica de execução.