Back to questions
Вкусно и точка
Middle — Middle+
69
Каким образом можно использовать async/await для последовательного выполнения запросов с возможностью завершить процесс после третьего запроса, не дожидаясь четвертого?
Companies where asked
Answer from AI
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 позволяет писать асинхронный код, который выглядит как синхронный, и легко контролировать логику выполнения.