Middle — Middle+
Cum poți folosi async/await pentru a executa solicitările în mod secvențial, cu posibilitatea de a încheia procesul după a treia solicitare, fără a aștepta a patra?
sobes.tech AI
Răspuns de la AI
Pentru a realiza solicitări secvențiale folosind async/await și pentru a avea posibilitatea de a întrerupe procesul după a treia solicitare, se poate folosi un ciclu simplu cu verificarea rezultatului sau un contor. De exemplu, în Swift:
func performRequests() async {
for i in 1...4 {
let result = await makeRequest(number: i)
print("Solicitare \(i) finalizată cu rezultat: \(result)")
if i == 3 {
print("Oprirea procesului după a treia solicitare")
break
}
}
}
func makeRequest(number: Int) async -> String {
// Simulare a unei solicitări asincrone
try? await Task.sleep(nanoseconds: 1_000_000_000) // 1 secundă
return "Răspuns \(number)"
}
În acest exemplu, solicitările sunt efectuate secvențial deoarece folosim await în interiorul ciclului. După a treia solicitare, ciclul este întrerupt cu instrucțiunea break, iar a patra solicitare nu se execută.
Astfel, async/await permite scrierea de cod asincron care arată ca unul sincron și controlează ușor logica de execuție.