Middle — Middle+
Ako môžete použiť async/await na sekvenčné vykonávanie požiadaviek s možnosťou ukončiť proces po tretej požiadavke, bez čakania na štvrtú?
sobes.tech AI
Odpoveď od AI
Na vykonávanie sekvenčných požiadaviek pomocou async/await a možnosť prerušiť proces po tretej požiadavke môžete použiť jednoduchý cyklus s kontrolou výsledku alebo počítadlom. Napríklad v Swift:
func performRequests() async {
for i in 1...4 {
let result = await makeRequest(number: i)
print("Požiadavka \(i) dokončená s výsledkom: \(result)")
if i == 3 {
print("Ukončenie procesu po tretej požiadavke")
break
}
}
}
func makeRequest(number: Int) async -> String {
// Simulácia asynchrónnej požiadavky
try? await Task.sleep(nanoseconds: 1_000_000_000) // 1 sekunda
return "Odpoveď \(number)"
}
V tomto príklade sú požiadavky vykonávané sekvenčne, pretože používame await vo vnútri cyklu. Po tretej požiadavke sa cyklus preruší príkazom break, a štvrtá požiadavka sa nevykoná.
Týmto spôsobom async/await umožňuje písanie asynchrónneho kódu, ktorý vyzerá ako synchronný, a ľahko kontrolovať logiku vykonávania.