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