33 lines
912 B
GDScript3
Raw Normal View History

2024-12-27 21:00:07 +01:00
static func take_until_(
other : Observable
) -> Callable:
var obs = other
var take_until = func(source : Observable) -> Observable:
# """Returns the values from the source observable sequence until
# the other observable sequence produces a value.
#
# Args:
# source: The source observable sequence.
#
# Returns:
# An observable sequence containing the elements of the source
# sequence up to the point the other sequence interrupted
# further propagation.
# """
var subscribe = func(
observer : ObserverBase,
scheduler : SchedulerBase = null
) -> DisposableBase:
var on_completed = func(__):
observer.on_completed()
return CompositeDisposable.new([
source.subscribe(observer, GDRx.basic.noop, GDRx.basic.noop, scheduler),
obs.subscribe(on_completed, observer.on_error, func():return, scheduler)
])
return Observable.new(subscribe)
return take_until