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 позволява писането на асинхронен код, който изглежда като синхронен, и лесно контролира логиката на изпълнение.