美文网首页
RxSwift常见操作

RxSwift常见操作

作者: JaneJie | 来源:发表于2017-11-29 11:49 被阅读6次

never

never就是创建一个sequence,但是不发出任何事件信号。

let disposeBag: DisposeBag()
let neverObservable = Observable<String>.never()
        
        neverObservable.subscribe { (event:Event<String>) in
            
            print(event.element ?? "")
            
        }.disposed(by: disposeBag)
结果是什么都不打印

empty

empty就是创建一个空的sequence,只能发出一个completed事件

let disposeBag: DisposeBag()
let emptyObservable = Observable<String>.empty()
        
        emptyObservable.subscribe { (event:Event<String>) in
            
            print(event)
            
        }.disposed(by: disposeBag)
completed

just

just是创建一个sequence只能发出一种特定的事件,能正常结束

let disposeBag: DisposeBag()
let justObservable = Observable.just("justObservable")
        
        justObservable { (event:Event<String>) in
            
            print(event)
            
        }.disposed(by: disposeBag)
next(justObservable)
completed

of

of是创建一个sequence能发出很多种事件信号

let disposeBag: DisposeBag()
let ofObservable = Observable.of("1","2","3","4")
        
        ofObservable.subscribe { (event:Event<String>) in
            
            print(event)
            
        }.disposed(by: disposeBag)
next(1)
next(2)
next(3)
next(4)
completed

from

from就是从集合中创建sequence,例如数组,字典或者Set

let disposeBag: DisposeBag()
let fromObservable = Observable.from(["a":"1","b":"2"])
        
        fromObservable.subscribe { (event) in
            
            print(event)
            
        }.disposed(by: disposeBag)
next((key: "b", value: "2"))
next((key: "a", value: "1"))
completed

create

我们也可以自定义可观察的sequence,那就是使用create

let disposeBag: DisposeBag()
let creatObservable = Observable.create { (observer:AnyObserver<Any>) -> Disposable in
            
            observer.onNext("123")
            observer.onNext(1.44)
            observer.onCompleted()
            return Disposables.create()
        }
        creatObservable.subscribe { (event:Event<Any>) in
            print(event)
        }.disposed(by: disposeBag)
next(123)
next(1.44)
completed

range

range就是创建一个sequence,他会发出这个范围中的从开始到结束的所有事件

let disposeBag: DisposeBag()
let rangeObservable = Observable.range(start: 1, count: 10)
        
        rangeObservable.subscribe { (event) in
            
            print(event)
            
        }.disposed(by: disposeBag)
next(1)
next(2)
next(3)
next(4)
next(5)
next(6)
next(7)
next(8)
next(9)
next(10)
completed

repeatElement

创建一个sequence,发出特定的事件n次

let disposeBag: DisposeBag()
let repeatElementObservable = Observable.repeatElement("repeatElement")
        
        repeatElementObservable.take(4).subscribe { (event) in
            print(event)
        }.disposed(by: disposeBag)
next(repeatElement)
next(repeatElement)
next(repeatElement)
next(repeatElement)
completed

相关文章

  • RxSwift常见操作

    never never就是创建一个sequence,但是不发出任何事件信号。 empty empty就是创建一个空...

  • RxSwift基础学习

    1.RxSwift常见操作 never never就是创建一个sequence,但是不发出任何事件信号。 empt...

  • RxSwift基础讲解

    RxSwift:RxSwift是一个使用可观察序列和函数式操作符编写异步和基于事件的代码的库。RxSwift常用的...

  • RxSwift -- 集合操作

    很多时候, 需要将两个事件队列合并来处理, 例如, 你想在用户确实输入了用户名和密码后, 才启用登录按钮 merg...

  • RxSwift-搞事情(一)

    一、初步了解 RxSwift的实现概括为4个流程,在RxSwift中,所有异步操作(事件)和数据流均被抽象为可观察...

  • RxSwift 中所有操作符的使用示例

    示例代码均来自 RxSwift 项目源码 目录 创建 ObservableType 和 Subscribe 操作一...

  • 重复执行某个操作序列

    参考文章:Swift - RxSwift的使用详解67(重复执行某个操作序列:repeatWhen)

  • RxSwift常见用法(一)

      RxSwift是ReactiveCocoa 的swift版本,是一种函数式响应编程的框架。RxSwift遵循F...

  • RxSwift 中的 retain cycle

    RxSwift 中的 retain cycle case 1: 这种情况是最常见的一种,因为 viewContro...

  • 框架学习RxSwift2.0 Observable创建

    1.常规操作导入RXSwift,参看https://www.jianshu.com/p/b73231a29949 ...

网友评论

      本文标题:RxSwift常见操作

      本文链接:https://www.haomeiwen.com/subject/ykcubxtx.html