RxPY - 实用程序运算符
delay
该运算符将根据给定的时间或日期延迟源可观测排放。
语法
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
此运算符会将来自源可观察值的值转换为以显式通知值的形式发出的值。
语法
materialize()
返回值
这将返回一个 observable,其中包含以显式通知值的形式发出的值。
示例
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
此运算符将给出来自源可观察值的值之间经过的时间。
语法
time_interval()
返回值
它将返回一个 Observable,该 Observable 将在发出的源值之间经过一段时间。
示例
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
该运算符将在经过的时间后给出源可观察对象的所有值,否则将触发错误。
语法
timeout(duetime)
参数
duetime: 以秒为单位给出的时间。
返回值
它将返回 observable 以及来自源 observable 的所有值。
示例
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
此运算符会将时间戳附加到源可观察对象的所有值。
语法
timestamp()
返回值
它将返回一个 observable,其中包含来自源 observable 的所有值以及时间戳。
示例
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))