Skip to content

Instantly share code, notes, and snippets.

@isaac-weisberg
Last active February 28, 2025 10:52
Show Gist options
  • Save isaac-weisberg/ebd391b2eaca952046a479307b293bc2 to your computer and use it in GitHub Desktop.
Save isaac-weisberg/ebd391b2eaca952046a479307b293bc2 to your computer and use it in GitHub Desktop.
average data race enjoyers be like
let imageMetaData = CurrentValueSubject<[ImageMetaData], Never>([])
ImageFetchingManager.fetchImageMetaData(page: page)
.subscribe(on: utilityQueue)
.sink(receiveCompletion: { [weak self] result in
guard let self = self else { return }
// Handle any error in here
switch result {
...
}
self.subscriptions.removeAll()
}, receiveValue: { [weak self] receivedValue in
guard let self = self else { return }
if page == 1 {
// Overwrite when page is 1
self.imageMetaData.send(receivedValue)
} else {
// Append when page is not 1 (more than 1)
let oldValue = self.imageMetaData.value
let newValue = oldValue + receivedValue
self.imageMetaData.send(newValue)
}
})
.store(in: &subscriptions)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment