美文网首页
rxSwift从零开始的代码3

rxSwift从零开始的代码3

作者: 卖毛玉的小贩 | 来源:发表于2018-01-23 13:55 被阅读0次

    本次讲rxSwift里的create机制

    create是什么,就是创建。

    就是自定义的方式来创建Observable

    这里我们初始化一下看看

     let obser1 = Observable<Int>.create{ observer in

             return Disposables.create()

      }

    直接用{}是会报错的

    看了下是因为源代码是public static funccreate(_subscribe: @escaping(AnyObserver) -> Disposable) -> Observable

    需要一个返回值,所以这里用return Disposables.create()

    初始化好了后,我们在里面执行前面写过的

    observer.onNext() 括号里面可以填写对应的类型,这里我们用的是int类型,所以可以这样写

     let obser1 = Observable.create{ observer in

              observer.onNext(666) // 执行next事件

            observer.onNext(233) //执行两次

           observer.onCompleted() // 结束

             return Disposables.create()

    //        }

    这里就可以使用

    obser1.subscribe(

                onNext:{print($0)},

             onError:{print($0)}

          onCompleted:{print("结束")},

           onDisposed:{print("释放")}

          )

    来获取对应的信息, 666  233  结束

    我们还能够在外面创建错误信息

        enum MyError:Error{

            caseoMaoyuError

        }

    然后在create里执行observer.onError(MyError.oMaoyuError)

    这里注意,当报错后,就不会在执行结束,而是会走错误-》return

    rxSwift还有调试bug的方法。

    有个专门对应的观察对象debug

    可以穿插在任何的地方,执行方法是

    obser1.debug().subscribe(

             onNext:{print($0)},

           onError:{print($0)},

            onCompleted:{print("结束")},

           onDisposed:{print("释放")}

         )

    会在打印subscribe里onNext这些之前进行打印结果,来进行验证,并给出对应的代码行数,适用于rxswift里的所有地方

    下一章传送门:rxSwift从零开始的代码4 - 简书

    相关文章

      网友评论

          本文标题:rxSwift从零开始的代码3

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