rxSwift从零开始的代码3

2018-01-23  本文已影响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 - 简书

上一篇下一篇

猜你喜欢

热点阅读