构建底层的发布和订阅事件总线
事件总线
是对发布和订阅设计模式的一种实现,通过发布,订阅可以将组件间一对一和一对多的耦合关系解开。
一对一:delegate和block,两者只适合做一对一数据传递,局限性较大
一对多:KVO和NSNotificationCenter,两者过于灵活而无法管控和维护
Promise
一种专门针对异步数据操作编写的一套统一规则的漠视。本质是通过Promise对象保存异步数据操作,同时Promise对象提供统一的异步数据操作事件处理的接口。
Promise对象的三种状态
- pending 表示Promise对象当前正在等待异步事件处理中
- fulfilled 表示Promise对象当前处理的异步事件已经成功完成
- rejected 表示Promise对象当前处理的异步事件没有成功
Promise对象的方法
then 和 catch,执行完后回返回先前的Promise对象,同时根据异步操作结果改变Promise对象的状态。
then方法就是事件总线中的发布操作,then方法执行完返回Promise对象能够继续同步执行多个then方法,由此实现了一个发布操作对应多个订阅事件。
PromiseKit
1 | firstly { |