Sobes.tech
Middle — Middle+

Как можете да използвате async/await за последователно изпълнение на заявки с възможност да завършите процеса след третата заявка, без да чакате четвъртата?

sobes.tech AI

Отговор от AI

За изпълнение на последователни заявки с помощта на async/await и възможност за прекъсване на процеса след третата заявка, може да се използва прост цикъл с проверка на резултата или брояч. Например, в Swift:

func performRequests() async {
    for i in 1...4 {
        let result = await makeRequest(number: i)
        print("Заявката \(i) завърши с резултат: \(result)")
        if i == 3 {
            print("Прекратяване на процеса след третата заявка")
            break
        }
    }
}

func makeRequest(number: Int) async -> String {
    // Имитация на асинхронна заявка
    try? await Task.sleep(nanoseconds: 1_000_000_000) // 1 секунда
    return "Отговор \(number)"
}

В този пример заявките се изпълняват последователно, тъй като използваме await вътре в цикъла. След третата заявка цикълът се прекъсва с командата break, и четвъртата заявка не се изпълнява.

По този начин, async/await позволява писането на асинхронен код, който изглежда като синхронен, и лесно контролира логиката на изпълнение.