Middle — Middle+
Jak lze použít async/await pro sekvenční provádění požadavků s možností ukončit proces po třetím požadavku, aniž bychom čekali na čtvrtý?
sobes.tech AI
Odpověď od AI
Pro sekvenční provádění požadavků pomocí async/await a možnost přerušit proces po třetím požadavku lze použít jednoduchý cyklus s kontrolou výsledku nebo počítadlem. Například v Swift:
func performRequests() async {
for i in 1...4 {
let result = await makeRequest(number: i)
print("Požadavek \(i) dokončen s výsledkem: \(result)")
if i == 3 {
print("Ukončení procesu po třetím požadavku")
break
}
}
}
func makeRequest(number: Int) async -> String {
// Simulace asynchronního požadavku
try? await Task.sleep(nanoseconds: 1_000_000_000) // 1 sekunda
return "Odpověď \(number)"
}
V tomto příkladu jsou požadavky prováděny sekvenčně, protože používáme await uvnitř cyklu. Po třetím požadavku je cyklus přerušen příkazem break, a čtvrtý požadavek se neprovede.
Tímto způsobem async/await umožňuje psát asynchronní kód, který vypadá jako synchronní, a snadno kontrolovat logiku provádění.