本次讲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 - 简书
网友评论