Promise的实现:因为他只是一个规范,所以在不同的框架或者平台下有不同的实现

Angular:$q服务
Node:q模块,co,then
Es6:Promise, yield
Es7:async await

    1、规范的内容是什么?

1、不管进行什么操作都返回一个promise对象,这个对象里面会有一些属性和方法(这个效果类似于jquery中的链式编程,返回自己本身)
2、这个promise有三种状态
Unfulfilled(未完成,初始状态)
Fulfilled(已完成)
Failed(失败、拒绝)
3、 这个promise对象的使用时通过then方法进行的调用

Promise/A+规范学习总结-LMLPHP

2、怎么对promise对象的状态进行改变?

1、 通过$q服务的deffer方法定义出来一个延迟对象。

Promise/A+规范学习总结-LMLPHP

2、 这个延迟对象都有三个方法
(1)resolved方法:当数据请求成功的时候调用,参数是成功返回的数据对象,把promise对象Unfulfilled状态改为fulfilled状态。
(2)rejected方法:当数据请求失败的时候调用,参数是失败的原因,把promise对象Unfulfilled状态改为failed状态。
(3)怎么知道在promise中调用哪个回调函数那,就是通过promise对象的状态进行判断的。
05-22 15:25