Promise的实现:由于他只是一个规范,因此在不一样的框架或者平台下有不一样的实现jquery
Angular:$q服务
Node:q模块,co,then
Es6:Promise, yield
Es7:async await
一、规范的内容是什么?
编程
1、无论进行什么操做都返回一个promise对象,这个对象里面会有一些属性和方法(这个效果相似于jquery中的链式编程,返回本身自己)
2、这个promise有三种状态
Unfulfilled(未完成,初始状态)
Fulfilled(已完成)
Failed(失败、拒绝)
三、 这个promise对象的使用时经过then方法进行的调用
二、怎么对promise对象的状态进行改变?promise
一、 经过$q服务的deffer方法定义出来一个延迟对象。
2、 这个延迟对象都有三个方法
(1)resolved方法:当数据请求成功的时候调用,参数是成功返回的数据对象,把promise对象Unfulfilled状态改成fulfilled状态。
(2)rejected方法:当数据请求失败的时候调用,参数是失败的缘由,把promise对象Unfulfilled状态改成failed状态。 (3)怎么知道在promise中调用哪一个回调函数那,就是经过promise对象的状态进行判断的。