Middle — Middle+
Kako koristiti async/await za izvršavanje zahteva sekvencijalno sa mogućnošću da se proces završi nakon trećeg zahteva, ne čekajući četvrti?
sobes.tech АИ
Одговор од АИ
Za izvršavanje sekvencijalnih zahteva pomoću async/await i mogućnost prekida procesa nakon trećeg zahteva, možete koristiti jednostavnu petlju sa proverom rezultata ili brojačem. Na primer, u Swift-u:
func performRequests() async {
for i in 1...4 {
let result = await makeRequest(number: i)
print("Zahtev \(i) završen sa rezultatom: \(result)")
if i == 3 {
print("Prekid procesa nakon trećeg zahteva")
break
}
}
}
func makeRequest(number: Int) async -> String {
// Simulacija asinhronog zahteva
try? await Task.sleep(nanoseconds: 1_000_000_000) // 1 sekunda
return "Odgovor \(number)"
}
U ovom primeru, zahtevi se izvršavaju sekvencijalno jer koristimo await unutar petlje. Nakon trećeg zahteva, petlja se prekida naredbom break, i četvrti zahtev se ne izvršava.
Na ovaj način, async/await omogućava pisanje asinhronog koda koji izgleda kao sinhroni, i lako kontrolisanje logike izvršenja.