let query: Query<Person> = ......
query.publisher
.replaceError(with: [])
/*.assign(to: \.persons, on: viewModel)*/
.sink(receiveValue: { persons in
viewModel.persons = persons
})
.store(in: &cancellables)
Expected behavior
I expected that viewModel.persons will update continuously when I add / change a record that will match my query.
Actual behavior
After the initial query result is consumed by the Subscriber, QueryPublisher will unsubscribe because various Subscriber implementations like sink(), assign(to:) or onReceive() of a SwiftUI view will return Subscriber.Demand.none which causes QueryPublisher to signal completion to the Subscriber and shut down.
I'm also curious of how to handle this, I ended up creating a custom subscriber that after every receive requests unlimited but it seems like an ugly hack to me
Is there an existing issue?
Build info
Steps to reproduce
Expected behavior
I expected that viewModel.persons will update continuously when I add / change a record that will match my query.
Actual behavior
After the initial query result is consumed by the Subscriber, QueryPublisher will unsubscribe because various Subscriber implementations like sink(), assign(to:) or onReceive() of a SwiftUI view will return Subscriber.Demand.none which causes QueryPublisher to signal completion to the Subscriber and shut down.