Promise用法
在项目中用到异步请求ajax,想到用promise来解决,之前用过但是已经很久了,还是忘了一些,重新熟悉了一下整理一份简要档。
Promise,就是一个对象,用来传递异步操作的消息
Promise 对象代表一个异步操作,有三种状态:Pending(进行中)、Resolved(已完成,又称 Fulfilled)和 Rejected(已失败)。
如果异步操作成功,则用 resolve 方法将 Promise 对象的状态,从「未完成」变为「成功」(即从 pending 变为 resolved);
如果异步操作失败,则用 reject 方法将 Promise 对象的状态,从「未完成」变为「失败」(即从 pending 变为 rejected)。
可以简要看看promise的源码
业务中的代码实现方式如下:在两次异步请求成功之后,再调用then的方法
现今流行的各大js库,几乎都不同程度的实现了Promise,如dojo,jQuery、Zepto等,它们暴露出来的大都是Deferred对象,以jQuery(Zepto类似)为例:方法更加简洁方便
推荐一部书 promise迷你书,很薄的一本,