RxSwift的常见操作

本文详细介绍了RxSwift中创建可观察序列的各种方法,包括never、empty、just、of、from、create、range、repeatElement等,每种方法的特点和应用场景都有具体示例。
摘要由CSDN通过智能技术生成

never

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

let disposeBag = DisposeBag()
let neverSequence = Observable<String>.never()
        
let neverSequenceSubscription = neverSequence
.subscribe ({ _ in
     print("This will never be printed")
}).disposed(by: disposeBag)

复制代码

empty

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

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

复制代码

just

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

        let disposeBag = DisposeBag()
        
        Observable.just("coderwhy")
            .subscribe { event in
                print(event)
            }.disposed(by: disposeBag)

复制代码

of

  • of是创建一个sequence能发出很多种事件信号
let disposeBag = DisposeBag()

Observable.of("a", "b", "c")
    .subscribe(onNext: { element in
        print(element)
    })
    .disposed(by: disposeBag)
复制代码

from

  • from就是从数组中创建sequence
let disposeBag = DisposeBag()

Observable.from(["a", "b", "c"])
    .subscribe(onNext: { print($0) })
    .addDisposableTo(disposeBag)

复制代码

create

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

  • create操作符传入一个观察者observer,然后调用observer的onNext,onCompleted和onError方法。返回一个可观察的obserable序列。
    fileprivate func createObservable() -> Observable<Any>{
        return Observable.create({ (observer: AnyObserver<Any>) -> Disposable in
            observer.onNext("123")
            observer.onNext("abc")
            observer.onCompleted()
            return Disposables.create()
        })
    }



复制代码
        let ob = self.createObservable()
        ob.subscribe ({ (event: Event<Any>) in
            print(event)
        }).disposed(by: bag)

复制代码

range

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

        Observable.range(start: 1, count: 10)
            .subscribe { (event : Event<Int>) in
                print(event)
            }.disposed(by: bag)

复制代码

repeatElement

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

Observable.repeatElement("hello world")
    .take(3)
    .subscribe(onNext: { print($0) })
    .disposed(by: bag)
复制代码

转载于:https://juejin.im/post/5bbf38785188255c74554035

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值