RxSwift Basics

Observables

Basic Examples of Observables and Observers

    // Create - this is a cold observable.  Will only start executing when an observer  
    subscribes.
    let observable = Observable<String>.create { (observer) -> Disposable in
        dispatch_async(dispatch_get_main_queue(), {
            NSThread.sleepForTimeInterval(10)
            observer.onNext("I'm still Reactive!")
            observer.onCompleted()
        })
        return NopDisposable.instance
    }

    // now we make an observer that subscribes to the above observable.
    // note: subscribeNext will only react to Next events.
    observable.subscribeNext { (element) in
        print(element)
    }.addDisposableTo(disposeBag)

    // Just - creates an observable that emits one value once and that's it.
    // the sequence is: .Next("Hello") -> .Completed
    let observable2 = Observable<String>.just("I'm Reactive!")

    observable2.subscribeNext { (element) in
        print(element)
    }.addDisposableTo(disposeBag)

    observable2.subscribeCompleted {
        print("I'm done.")
    }.addDisposableTo(disposeBag)

    // Interval - increments an Int from 0 every 0.3 seconds (in this example).
    // Used to define threading/async behavior
    let observable3 = Observable<Int>.interval(0.3, scheduler: MainScheduler.instance)

    observable3.subscribeNext { (element) in
        print(element)
    }.addDisposableTo(disposeBag)

    // Repeat - repeats a given value infinitely.
    let observable4 = Observable<String>.repeatElement("I'm Reactive I'm Reactive!")

    observable4.subscribeNext { (element) in
        print(element)
    }.addDisposableTo(disposeBag)

results matching ""

    No results matching ""