33 lines
934 B
GDScript
33 lines
934 B
GDScript
static func timestamp_(
|
|
scheduler : SchedulerBase = null
|
|
) -> Callable:
|
|
var timestamp = func(source : Observable) -> Observable:
|
|
# """Records the timestamp for each value in an observable sequence.
|
|
#
|
|
# Examples:
|
|
# >>> timestamp.call(source)
|
|
#
|
|
# Produces objects with attributes `value` and `timestamp`, where
|
|
# value is the original value.
|
|
#
|
|
# Args:
|
|
# source: Observable source to timestamp.
|
|
#
|
|
# Returns:
|
|
# An observable sequence with timestamp information on values.
|
|
# """
|
|
var factory = func(scheduler_ : SchedulerBase = null):
|
|
var _scheduler : SchedulerBase
|
|
if scheduler != null: _scheduler = scheduler
|
|
elif scheduler_ != null: _scheduler = scheduler_
|
|
else: _scheduler = SceneTreeTimeoutScheduler.singleton()
|
|
|
|
var mapper = func(value) -> Tuple:
|
|
return Tuple.new([value, _scheduler.now()])
|
|
|
|
return source.pipe1(GDRx.op.map(mapper))
|
|
|
|
return GDRx.obs.defer(factory)
|
|
|
|
return timestamp
|