创建Observable
let obserable1 = Observable<Int>.create { (observe) -> Disposable in
observe.onNext(10);
observe.onNext(22);
observe.onNext(33);
observe.onNext(3);
observe.onNext(5);
return Disposables.create();
}
过滤小于20数据
obserable1.filter{ $0 > 20 }.subscribe { (onNext) in
print(onNext)
}.dispose();
打印
next(30)next(40)next(50)
map
let obserable1 = Observable<Int>.create { (observe) -> Disposable in
observe.onNext(10);
observe.onNext(20);
observe.onNext(30);
observe.onNext(40);
observe.onNext(50);
return Disposables.create();
}
obserable1.map{ "所有数据乘以10 \($0 * 10)"}.subscribe { (onNext) in
print(onNext);
}
打印
next(所有数据乘以10 100)
next(所有数据乘以10 200)
next(所有数据乘以10 300)
next(所有数据乘以10 400)
next(所有数据乘以10 500)
zip
let obserable1 = Observable<Int>.create { (observe) -> Disposable in
observe.onNext(10);
observe.onNext(20);
observe.onNext(30);
observe.onNext(40);
observe.onNext(50);
return Disposables.create();
}
let obserable2 = Observable<String>.create { (observe) -> Disposable in
observe.onNext("A");
observe.onNext("B");
observe.onNext("C");
return Disposables.create();
}
Observable.zip(obserable1, obserable2) { "\($0)" + $1 }.subscribe { (onNext) in
print(onNext)
}.dispose();
打印
next(10A)
next(20B)
next(30C)
just
let obserable3 = Observable.just(123456);
obserable3.subscribe { (onNext) in
print(onNext)
}
打印next(123456)
completed
timer
//间隔2两秒,10 秒后发出
let obserable4 = Observable<Int>.timer(.seconds(10), period: .seconds(2), scheduler: MainScheduler.instance)
obserable4.subscribe { (onNext) in
print("当前秒数\(onNext)")
}