Junior — Middle
Možete li objasniti šta je AsyncSequence i kako se koristi u Swift-u?
sobes.tech АИ
Одговор од АИ
AsyncSequence у Swift-у је протокол који омогућава рад са асинхроним низовима вредности. Он је сличан обичном низу, али је намењен за асинхроно добијање елемената, на пример, из мреже или других извора где подаци стижу са закашњењем.
Користећи AsyncSequence, можете писати код који пролази кроз елементе помоћу конструкције for await, што чини асинхрони ток података лако читљивим и обрађивим.
Пример коришћења AsyncSequence:
struct AsyncCounter: AsyncSequence {
typealias Element = Int
let limit: Int
struct AsyncIterator: AsyncIteratorProtocol {
var current = 0
let limit: Int
mutating func next() async -> Int? {
guard current < limit else { return nil }
current += 1
// Симулација асинхроног закашњења
try? await Task.sleep(nanoseconds: 500_000_000) // 0.5 секунди
return current
}
}
func makeAsyncIterator() -> AsyncIterator {
return AsyncIterator(current: 0, limit: limit)
}
}
// Коришћење:
Task {
for await number in AsyncCounter(limit: 5) {
print(number)
}
}
Овај приступ је користан за рад са токовима података који стижу са закашњењем, као што су вебсокети, таймери или асинхроне API-ји.