Open
Description
Short description of the issue:
1 Case
Looks like .do(onSubscribed:)
and .do(onSubscribe:)
don't respect .observe(on:)
.
example:
Observable<String>.just("1")
.observe(on: SerialDispatchQueueScheduler(internalSerialQueueName: "observe"))
.do(onSubscribed: {
print("do, isMain ==> \(Thread.isMainThread), DispatchQueue ==> \(DispatchQueue.name())")
})
.subscribe(onNext: { _ in
print("subscribe, isMain ==> \(Thread.isMainThread), DispatchQueue ==> \(DispatchQueue.name())")
})
result:
do, isMain ==> true, DispatchQueue ==> main-thread
subscribe, isMain ==> false, DispatchQueue ==> observe
expected:
do, isMain ==> false, DispatchQueue ==> observe
subscribe, isMain ==> false, DispatchQueue ==> observe
2 Case
Also might be related:
Looks like .do(onSubscribed:)
and .do(onSubscribe:)
don't respect .subscribe(on:)
if it is above do
statement.
example:
Observable<String>.just("1")
.subscribe(on: SerialDispatchQueueScheduler(internalSerialQueueName: "subscribe"))
.do(onSubscribed: {
print("do, isMain ==> \(Thread.isMainThread), DispatchQueue ==> \(DispatchQueue.name())")
})
.subscribe(onNext: { _ in
print("subscribe, isMain ==> \(Thread.isMainThread), DispatchQueue ==> \(DispatchQueue.name())")
})
result:
subscribe, isMain ==> false, DispatchQueue ==> subscribe
do, isMain ==> true, DispatchQueue ==> main-thread
expected:
subscribe, isMain ==> false, DispatchQueue ==> subscribe
do, isMain ==> false, DispatchQueue ==> subscribe
Metadata
Metadata
Assignees
Labels
No labels