RxPY - 实用运算符
-
delay
该运营商将根据给定的时间或日期延迟源可观测排放。句法
delay(timespan)
参数
timespan:这将以秒或日期为单位的时间。返回值
它将返回一个带有在超时后发出的源值的 observable。例子
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
该操作符会将源 observable 中的值转换为以显式通知值的形式发出的值。句法
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
该运算符将给出源 observable 的值之间经过的时间。句法
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
该运算符将在经过的时间之后给出源 observable 中的所有值,否则将触发错误。句法
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
该操作符将为源 observable 中的所有值附加时间戳。句法
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))