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.