Sobes.tech
Middle — Middle+

Wie kann man async/await verwenden, um Anfragen sequenziell auszuführen und den Vorgang nach der dritten Anfrage abzuschließen, ohne auf die vierte zu warten?

sobes.tech KI

Antwort von AI

Um sequenzielles Ausführen von Anfragen mit async/await und die Möglichkeit, den Prozess nach der dritten Anfrage abzubrechen, kann mit einer einfachen Schleife mit Ergebnisüberprüfung oder Zähler erfolgen. Zum Beispiel in Swift:

func performRequests() async {
    for i in 1...4 {
        let result = await makeRequest(number: i)
        print("Anfrage \(i) abgeschlossen mit Ergebnis: \(result)")
        if i == 3 {
            print("Prozess nach der dritten Anfrage beenden")
            break
        }
    }
}

func makeRequest(number: Int) async -> String {
    // Simulation einer asynchronen Anfrage
    try? await Task.sleep(nanoseconds: 1_000_000_000) // 1 Sekunde
    return "Antwort \(number)"
}

In diesem Beispiel werden die Anfragen sequenziell ausgeführt, weil await innerhalb der Schleife verwendet wird. Nach der dritten Anfrage wird die Schleife durch break unterbrochen, und die vierte Anfrage wird nicht ausgeführt.

Auf diese Weise ermöglicht async/await das Schreiben von asynchronem Code, der wie synchron aussieht, und erleichtert die Kontrolle der Ausführungslogik.