Sobes.tech
Middle — Middle+

Hoe kun je async/await gebruiken voor het sequentieel uitvoeren van verzoeken met de mogelijkheid om het proces te beëindigen na het derde verzoek, zonder te wachten op de vierde?

sobes.tech AI

Antwoord van AI

Om sequentiële verzoeken uit te voeren met behulp van async/await en de mogelijkheid om het proces na het derde verzoek te onderbreken, kun je een eenvoudige lus gebruiken met een resultaatcontrole of teller. Bijvoorbeeld in Swift:

func performRequests() async {
    for i in 1...4 {
        let result = await makeRequest(number: i)
        print("Verzoek \(i) voltooid met resultaat: \(result)")
        if i == 3 {
            print("Beëindig het proces na het derde verzoek")
            break
        }
    }
}

func makeRequest(number: Int) async -> String {
    // Simulatie van een asynchrone aanvraag
    try? await Task.sleep(nanoseconds: 1_000_000_000) // 1 seconde
    return "Antwoord \(number)"
}

In dit voorbeeld worden de verzoeken sequentieel uitgevoerd omdat we await binnen de lus gebruiken. Na het derde verzoek wordt de lus onderbroken met de instructie break, en wordt het vierde verzoek niet uitgevoerd.

Op deze manier maakt async/await het mogelijk om asynchrone code te schrijven die eruitziet als synchrone code, en de uitvoeringslogica gemakkelijk te controleren.