Sobes.tech
Middle — Middle+

Kā izmantot async/await, lai secīgi veiktu pieprasījumus ar iespēju pabeigt procesu pēc trešā pieprasījuma, nesagaidot ceturto?

sobes.tech AI

Atbilde no AI

Lai veiktu secīgi pieprasījumus, izmantojot async/await un iespēju pārtraukt procesu pēc trešā pieprasījuma, var izmantot vienkāršu ciklu ar rezultāta vai skaitītāja pārbaudi. Piemēram, Swift:

func performRequests() async {
    for i in 1...4 {
        let result = await makeRequest(number: i)
        print("Pieprasījums \(i) pabeigts ar rezultātu: \(result)")
        if i == 3 {
            print("Procesa pārtraukšana pēc trešā pieprasījuma")
            break
        }
    }
}

func makeRequest(number: Int) async -> String {
    // Asinhronās pieprasījuma imitācija
    try? await Task.sleep(nanoseconds: 1_000_000_000) // 1 sekunde
    return "Atbilde \(number)"
}

Šajā piemērā pieprasījumi tiek veikti secīgi, jo mēs izmantojam await cikla iekšpusē. Pēc trešā pieprasījuma cikls tiek pārtraukts ar break, un ceturtais pieprasījums netiek veikts.

Tādējādi, async/await ļauj rakstīt asinhronu kodu, kas izskatās kā sinhrons, un viegli kontrolēt izpildes loģiku.