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.