Sobes.tech
Назад к вопросам
Middle — Middle+
70

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

Компании, где спрашивали
Вкусно и точкаВкусно и точка

Ответ от нейросети

sobes.tech AI

Для последовательного выполнения запросов с использованием async/await и возможности прервать процесс после третьего запроса можно использовать простой цикл с проверкой результата или счётчиком. Например, в Swift:

func performRequests() async {
    for i in 1...4 {
        let result = await makeRequest(number: i)
        print("Request \(i) completed with result: \(result)")
        if i == 3 {
            print("Завершаем процесс после третьего запроса")
            break
        }
    }
}

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

В этом примере запросы выполняются последовательно, потому что мы используем await внутри цикла. После третьего запроса цикл прерывается оператором break, и четвёртый запрос не выполняется.

Таким образом, async/await позволяет писать асинхронный код, который выглядит как синхронный, и легко контролировать логику выполнения.