zoukankan      html  css  js  c++  java
  • Operation之其他实用操作符

    delay

    • 该操作符会将 Observable 的所有元素都先拖延一段设定好的时间, 然后才将他们发送出来
    Observable.of(1,2,3,4)
        .delay(5, scheduler: MainScheduler.instance)
        .subscribe(onNext: { print($0) })
        .disposed(by: bag)
    

    delaySubscription

    • 该操作符可以进行延时订阅. 即经过所设定的时间后, 才对Observable进行订阅操作
    Observable.of(1,2,3,4)
        .delaySubscription(3, scheduler: MainScheduler.instance)
        .subscribe(onNext: { print($0) })
        .disposed(by: bag)
    

    materialize

    • 该操作符可以将序列产生的事件, 转换成元素
    • 通常一个有限的Observable将产生0个或者多个onNext事件, 最后产生一个onCompleted或者onError事件. 而materialize操作符会将Observable产生的这些事件全部转换成元素, 然后发送出来
    Observable.of(1,2,3,4)
        .materialize()
        .subscribe(onNext: { print($0) })
        .disposed(by: bag)
    

    dematerialize

    • 该操作符的作用和materialize正好相反, 它可以将materialize转换后的元素还原
    Observable.of(1,2,3,4)
        .materialize()
        .dematerialize()
        .subscribe(onNext: { print($0) })
        .disposed(by: bag)
    

    timeout

    • 使用该操作符可以设置一个超时时间. 如果源Observable在规定时间内没有发生任何元素, 就产生一个超时的error事件

    let times = [
    ["value": 1, "time": 0],
    ["value": 2, "time": 0.5],
    ["value": 3, "time": 1.0],
    ["value": 4, "time": 1.5],
    ["value": 5, "time": 5],
    ["value": 6, "time": 6]
    ]

    Observable.from(times)
        .flatMap { item in
            return Observable.of(Int(item["value"]!))
                .delaySubscription(Double(item["time"]!), scheduler: MainScheduler.instance)
    }
        .timeout(2, scheduler: MainScheduler.instance) // 超过2秒没有发出元素, 则产生error事件
        .subscribe(onNext: { print($0) }, onError: {print($0)})
        .disposed(by: bag)
    

  • 相关阅读:
    搭建一键化编译汇编语言的环境
    Windows内核中的CPU架构8任务段TSS(task state segment)
    80866中断
    x86132位x86 处理器编程架构
    80861计算机的启动过程
    Android 10升级至Android 11后关于startActivity启动应用抛异常处理方法
    通过AndroidJUnit4框架发现用例不会按顺序执行,变成随机了
    2021年11个我们喜爱的DevOps开源工具
    2021年终总结
    CF1204C Anna, Svyatoslav and Maps
  • 原文地址:https://www.cnblogs.com/gchlcc/p/11975457.html
Copyright © 2011-2022 走看看