http://blog.csdn.net/womendeaiwoming/article/details/49849055

研究了几天Promise模式,因为在项目里也遇到了所谓的“回调陷阱”,就是多个网络请求造成的。

看了网上的几个用swift实现的简单的promise模式,都有很大的局限性,对多次异步网络请求并不适用,他们的实现原理简单的总结是:每个promise都预留了onResolve 和 onReject 属性,在then方法调用时对这两个属性赋值,当所有的then赋值都结束后,调用初始的逻辑,由我们根据逻辑确定是调用onResolve还是onReject方法,之后循环调用子promise的onResolve或onReject,直到结束。

说起来晕乎乎的,其实理念很简单,但能实现的功能太有限了,对于多次异步网络请求,完全无法使用。

只有使用PromiseKit中重写的网络请求类,才能解决这个问题。准备对PromiseKit的网络函数部分研究一下,看看内部是如何实现的。

05-11 13:22