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.