RxPY - 实用运算符
延迟
此运算符将根据给定的时间或日期延迟源可观测项的发射。
语法
delay(timespan)
参数
timespan:这将是秒或日期的时间。
返回值
它将返回一个可观测项,其中源值在超时后发射。
示例
from rx import of, operators as op
import datetime
test1 = of(1,2,3,4,5)
sub1 = test1.pipe(
op.delay(5.0)
)
sub1.subscribe(lambda x: print("The value is {0}".format(x)))
input("Press any key to exit\n")
输出
E:\pyrx>python testrx.py Press any key to exit The value is 1 The value is 2 The value is 3 The value is 4 The value is 5
实体化
该运算符将源可观测项的值转换为以显式通知值形式发射的值。
语法
materialize()
返回值
这将返回一个可观测项,其中以显式通知值的形式发射的值。
示例
from rx import of, operators as op
import datetime
test1 = of(1,2,3,4,5)
sub1 = test1.pipe(
op.materialize()
)
sub1.subscribe(lambda x: print("The value is {0}".format(x)))
输出
E:\pyrx>python testrx.py The value is OnNext(1.0) The value is OnNext(2.0) The value is OnNext(3.0) The value is OnNext(4.0) The value is OnNext(5.0) The value is OnCompleted()
时间间隔
此运算符将给出源可观测项的值之间的经过时间。
语法
time_interval()
返回值
它会返回一个可观测项,其中会有发出的源值之间的经过时间。
示例
from rx import of, operators as op
from datetime import date
test = of(1,2,3,4,5,6)
sub1 = test.pipe(
op.time_interval()
)
sub1.subscribe(lambda x: print("The value is {0}".format(x)))
输出
E:\pyrx>python testrx.py The value is TimeInterval(value=1, interval=datetime.timedelta(microseconds=1000 )) The value is TimeInterval(value=2, interval=datetime.timedelta(0)) The value is TimeInterval(value=3, interval=datetime.timedelta(0)) The value is TimeInterval(value=4, interval=datetime.timedelta(microseconds=1000 )) The value is TimeInterval(value=5, interval=datetime.timedelta(0)) The value is TimeInterval(value=6, interval=datetime.timedelta(0))
超时
此运算符将提供源可观测项中的所有值,在经过时间后,否则将触发一个错误。
语法
timeout(duetime)
参数
duetime:给定的秒数。
返回值
它将返回一个可观测项,其中包含源可观测项中的所有值。
示例
from rx import of, operators as op
from datetime import date
test = of(1,2,3,4,5,6)
sub1 = test.pipe(
op.timeout(5.0)
)
sub1.subscribe(lambda x: print("The value is {0}".format(x)))
输出
E:\pyrx>python testrx.py The value is 1 The value is 2 The value is 3 The value is 4 The value is 5 The value is 6
时间戳
此运算符将把时间戳附加到源可观测项中的所有值。
语法
timestamp()
返回值
它将返回一个可观测项,其中包含源可观测项中的所有值以及时间戳。
示例
from rx import of, operators as op
from datetime import date
test = of(1,2,3,4,5,6)
sub1 = test.pipe(
op.timestamp()
)
sub1.subscribe(lambda x: print("The value is {0}".format(x)))
输出
E:\pyrx>python testrx.py The value is Timestamp(value=1, timestamp=datetime.datetime(2019, 11, 4, 4, 57, 44, 667243)) The value is Timestamp(value=2, timestamp=datetime.datetime(2019, 11, 4, 4, 57, 44, 668243)) The value is Timestamp(value=3, timestamp=datetime.datetime(2019, 11, 4, 4, 57, 44, 668243)) The value is Timestamp(value=4, timestamp=datetime.datetime(2019, 11, 4, 4, 57, 44, 668243)) The value is Timestamp(value=5, timestamp=datetime.datetime(2019, 11, 4, 4, 57, 44, 669243)) The value is Timestamp(value=6, timestamp=datetime.datetime(2019, 11, 4, 4, 57, 44, 669243))
广告