美文网首页
可监听序列

可监听序列

作者: fanren | 来源:发表于2020-07-05 15:49 被阅读0次

    一、创建可监听序列

    能发出三种结果

    • 发出元素onNext(可发出多次)
    • 发出完成事件onCompleted
    • 发出异常事件onErrorr
    let observable = Observable<Int>.create { (observer) -> Disposable in
        observer.onNext(1)
        observer.onNext(2)
        observer.onNext(4)
        observer.onCompleted()
        return Disposables.create()
    }
            
    observable.subscribe(onNext: { (value) in
        print(value)
    }).dispose()
    

    二、signle

    能发出两种事件

    • 发出元素success(只能发出一次)
    • 发出异常时间error
    let single = Single<Int>.create { (observer) -> Disposable in
        observer(.success(1))
        return Disposables.create()
    }
    single.subscribe(onSuccess: { (value) in
        print(value)
    }, onError: { (_) in
                
    }).dispose()
    

    三、Completable

    能发出两种事件

    • 发出完成事件onCompleted
    • 发出异常事件onErrorr
    let completeable = Completable.create { (observer) -> Disposable in
        observer(.completed)
        return Disposables.create()
    }
    completeable.subscribe(onCompleted: {
        print("success")
    }, onError: { (_) in
        print("error")
    }).dispose()
    

    四、Maybe

    只能发出一种时间

    • 元素 或者 completed 或者 error(三者任取其一)
    let maybe = Maybe<Int>.create { (observer) -> Disposable in
        observer(.success(0))
        return Disposables.create()
    }
            
    maybe.subscribe(onSuccess: { (value) in
        print(value)
     }, onError: { (_) in
        print("error")
    }, onCompleted: {
        print("complete")
    }).dispose()
    

    相关文章

      网友评论

          本文标题:可监听序列

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