首页
Python
Java
IOS
Andorid
NodeJS
JavaScript
HTML5
【
RxSwift学习笔记6:Subjects/PublishSubject/BehaviorSubject/ReplaySubject/Variable
】的更多相关文章
RxSwift学习笔记6:Subjects/PublishSubject/BehaviorSubject/ReplaySubject/Variable
// 从前面的几篇文章可以发现,当我们创建一个 Observable 的时候就要预先将要发出的数据都准备好,等到有人订阅它时再将数据通过 Event 发出去. // 但有时我们希望 Observable 在运行时能动态地“获得”或者说“产生”出一个新的数据,再通过 Event 发送出去. //比如:订阅一个输入框的输入内容,当用户每输入一个字后,这个输入框关联的 Observable 就会发出一个带有输入内容的 Event,通知给所有订阅者. //这个就可以使用下面将要介绍的 Subjects…
RxSwift学习笔记7:buffer/window/map/flatMap/flatMapLatest/flatMapFirst/concatMap/scan/groupBy
1.buffer的基本使用 let publishSubject = PublishSubject<String>() //buffer 方法作用是缓冲组合,第一个参数是缓冲时间,第二个参数是缓冲个数,第三个参数是线程. //该方法简单来说就是缓存 Observable 中发出的新元素,当元素达到某个数量,或者经过了特定的时间,它就会将这个元素集合发送出来. publishSubject.buffer(timeSpan: 1, count: 3, scheduler: MainSchedule…
RxSwift学习笔记之Subject
本文为原创文章,转载请标明出处 AsyncSubject 一个AsyncSubject只在原始Observable完成后,发射来自原始Observable的最后一个值.它会把这最后一个值发射给任何后续的观察者. let disposeBag = DisposeBag() let subject = AsyncSubject<Int>() subject.onNext(1) subject.subscribe(onNext: { int in print("observerA: \(i…
RxSwift学习笔记10:startWith/merge/zip/combineLatest/withLatestFrom/switchLatest
//startWith //该方法会在 Observable 序列开始之前插入一些事件元素.即发出事件消息之前,会先发出这些预先插入的事件消息 Observable.of(1,2,3) .startWith(0) .subscribe(onNext:{print($0)}) .disposed(by: disposeBag) /* 0 1 2 3 */ print("\n") //插入多个数据也是可以的 Observable.of(1,2,3) .startWith(0) .start…
RxSwift学习笔记9:amb/tabkeWhile/tabkeUntil/skipWhile/skipUntil
//amb基本介绍 //当传入多个 Observables 到 amb 操作符时,它将取第一个发出元素或产生事件的 Observable,然后只发出它的元素. //并忽略掉其他的 Observables. let psubject0 = PublishSubject<Int>() let psubject1 = PublishSubject<Int>() let psubject2 = PublishSubject<Int>() psubject0.amb(psubje…
RxSwift学习笔记8:filter/distinctUntilChanged/single/elementAt/ignoreElements/take/takeLast/skip/sample/debounce
//filter:该操作符就是用来过滤掉某些不符合要求的事件. Observable.of(1,2,3,4,5,8).filter({ $0 % 2 == 0 }).subscribe { (event) in print(event.element ?? "nil") }.disposed(by: disposeBag) /* 2 4 8 nil */ print("========================") //distinctUntilChanged…
RxSwift学习笔记5:Binder
使用 Binder 创建观察者 //Observable序列(每隔1秒钟发出一个索引数) let scheduleObservable = Observable<Int>.interval(1, scheduler: MainScheduler.instance) let blinderObserval:Binder<String> = Binder(label){view,text in view.text = text } scheduleObservable .map{&qu…
RxSwift学习笔记2:Observable/生命周期/Event/oneNext/onError/onCompleted/
Observable 是 Rx 的根基 官网:http://reactivex.io/ github地址:https://github.com/ReactiveX/RxSwift Observable<T> 这个类就是 Rx 框架的基础,我们可以称它为可观察序列.它的作用就是可以异步地产生一系列的 Event(事件),即一个 Observable<T> 对象会随着时间推移不定期地发出 event(element : T) 这样一个东西. 而且这些 Event 还可以携带数据,它的…
RxSwift学习笔记1:RxSwift的编程风格
第一天:简单体验与RxSwift的编程风格 import UIKit//导入Rx相关框架 import RxSwift import RxCocoa struct Music { let name:String let singer:String init(name:String,singer:String) { self.name = name self.singer = singer } } extension Music:CustomStringConvertible{ var descr…
RxSwift学习笔记4:disposeBag/scheduler/AnyObserver/Binder
let disposeBg = DisposeBag() //直接在创建 //在 subscribe 方法中创建 let ofObserval = Observable.of("a","b","c") ofObserval.subscribe(onNext: { (element) in print(element) }, onError: { (error) in print(error.localizedDescription) }, onC…