@@ -509,17 +509,19 @@ public extension Observable where Element: Object {
509
509
- parameter object: A Realm Object to observe
510
510
- parameter emitInitialValue: whether the resulting `Observable` should emit its first element synchronously (e.g. better for UI bindings)
511
511
- parameter properties: changes to which properties would triger emitting a .next event
512
+ - parameter queue: The serial dispatch queue to receive notification on. If `nil`, notifications are delivered to the current thread.
512
513
- returns: `Observable<Object>` will emit any time the observed object changes + one initial emit upon subscription
513
514
*/
514
515
515
516
static func from( object: Element , emitInitialValue: Bool = true ,
516
- properties: [ String ] ? = nil ) -> Observable < Element > {
517
+ properties: [ String ] ? = nil ,
518
+ on queue: DispatchQueue ? = nil ) -> Observable < Element > {
517
519
return RxSwift . Observable < Element > . create { observer in
518
520
if emitInitialValue {
519
521
observer. onNext ( object)
520
522
}
521
523
522
- let token = object. observe { change in
524
+ let token = object. observe ( on : queue ) { change in
523
525
switch change {
524
526
case let . change( _, changedProperties) :
525
527
if let properties = properties, !changedProperties. contains ( where: { properties. contains ( $0. name) } ) {
@@ -544,12 +546,14 @@ public extension Observable where Element: Object {
544
546
Returns an `Observable<PropertyChange>` that emits the object `PropertyChange`s.
545
547
546
548
- parameter object: A Realm Object to observe
549
+ - parameter queue: The serial dispatch queue to receive notification on. If `nil`, notifications are delivered to the current thread.
547
550
- returns: `Observable<PropertyChange>` will emit any time a change is detected on the object
548
551
*/
549
552
550
- static func propertyChanges( object: Element ) -> Observable < PropertyChange > {
553
+ static func propertyChanges( object: Element ,
554
+ on queue: DispatchQueue ? = nil ) -> Observable < PropertyChange > {
551
555
return RxSwift . Observable < PropertyChange > . create { observer in
552
- let token = object. observe { change in
556
+ let token = object. observe ( on : queue ) { change in
553
557
switch change {
554
558
case let . change( _, changes) :
555
559
for change in changes {
0 commit comments