Sobes.tech
Middle — Middle+

Comment peut-on utiliser async/await pour exécuter des requêtes de manière séquentielle avec la possibilité de terminer le processus après la troisième requête, sans attendre la quatrième ?

sobes.tech IA

Réponse de l'IA

Pour effectuer des requêtes séquentielles en utilisant async/await et avoir la possibilité d’interrompre le processus après la troisième requête, vous pouvez utiliser une boucle simple avec une vérification du résultat ou un compteur. Par exemple, en Swift :

func performRequests() async {
    for i in 1...4 {
        let result = await makeRequest(number: i)
        print("Requête \(i) terminée avec le résultat : \(result)")
        if i == 3 {
            print("Arrêt du processus après la troisième requête")
            break
        }
    }
}

func makeRequest(number: Int) async -> String {
    // Simulation d’une requête asynchrone
    try? await Task.sleep(nanoseconds: 1_000_000_000) // 1 seconde
    return "Réponse \(number)"
}

Dans cet exemple, les requêtes sont effectuées de manière séquentielle car nous utilisons await à l’intérieur de la boucle. Après la troisième requête, la boucle est interrompue par l’instruction break, et la quatrième requête n’est pas exécutée.

Ainsi, async/await permet d’écrire un code asynchrone qui ressemble à du synchrone, tout en contrôlant facilement la logique d’exécution.