Sobes.tech
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.