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))