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