public class CollectionChangesetWithToken<Collection, T> : Publisher where Collection : RealmCollection
A publisher which emits RealmCollectionChange
subscribe(on:) can be called directly on this
publisher, and calling
.threadSafeReference() is only required if
there is an intermediate transform. If
subscribe(on:) is used, it
should always be the first operation in the pipeline.
Create this publisher using the
changesetPublisher property on RealmCollection.
This publisher reports error via the
.errorcase of RealmCollectionChange.
public typealias Failure = Never
Specifies the scheduler on which to perform subscribe, cancel, and request operations.
For Realm Publishers, this determines which queue the underlying change notifications are sent to. If
receive(on:)is not used subsequently, it also will determine which queue elements received from the publisher are evaluated on. Currently only serial dispatch queues are supported, and the
options:parameter is not supported.
public func subscribe<S>(on scheduler: S) -> CollectionChangesetWithToken<Collection, T> where S : Scheduler
The serial dispatch queue to perform the subscription on.
A publisher which subscribes on the given scheduler.
Specifies the scheduler on which to perform downstream operations.
This differs from
subscribe(on:)in how it is integrated with the autorefresh cycle. When using
subscribe(on:), the subscription is performed on the target scheduler and the publisher will emit the collection during the refresh. When using
receive(on:), the collection is then converted to a
ThreadSafeReferenceand delivered to the target scheduler with no integration into the autorefresh cycle, meaning it may arrive some time after the refresh occurs.
When in doubt, you probably want
public func receive<S>(on scheduler: S) -> DeferredHandoverCollectionChangeset<CollectionChangesetWithToken, Collection, S> where S : Scheduler
The serial dispatch queue to receive values on.
A publisher which delivers values to the given scheduler.