Sobes.tech
Middle — Middle+

Hogyan használhatja az async/await-et a kérés sorban történő végrehajtására, lehetőséget adva a folyamat befejezésére a harmadik kérés után anélkül, hogy várná a negyediket?

sobes.tech MI

Válasz az MI-től

Az async/await használatával szekvenciális kérések végrehajtása és a folyamat megszakítása a harmadik kérés után egyszerű ciklus és eredmény vagy számláló ellenőrzésével lehetséges. Például Swift-ben:

func performRequests() async {
    for i in 1...4 {
        let result = await makeRequest(number: i)
        print("Kérés \(i) befejeződött eredménnyel: \(result)")
        if i == 3 {
            print("A folyamat befejezése a harmadik kérés után")
            break
        }
    }
}

func makeRequest(number: Int) async -> String {
    // Aszinkron kérés szimulációja
    try? await Task.sleep(nanoseconds: 1_000_000_000) // 1 másodperc
    return "Válasz \(number)"
}

Ebben a példában a kérések szekvenciálisan hajtódnak végre, mert az await-et a cikluson belül használjuk. A harmadik kérés után a ciklus a break utasítással megszakad, és a negyedik kérés nem kerül végrehajtásra.

Így az async/await lehetővé teszi az aszinkron kód írását, amely úgy néz ki, mint szinkron, és könnyen ellenőrizhető a végrehajtási logika.