概念
Promise,承诺。是一个对未来画饼,提前写好逻辑的对象。
既是承诺,则有实现诺言的过程,实现诺言的结果(兑现或未兑现)。
对应着Promise的3个状态:
- Pending 实现过程
- Resolved(Fullfilled) 兑现承诺
-
Rejected 未兑现
promises.png
打个比方,Promise其实就像是期权,Pending是为上市奋斗的过程,Resolved是上市成功,可以兑换成股票变现,Rejected是上市失败,变为一堆废纸。
而由Pending->Resolved或Rejected,这个改变只能发生一个。
Promise是可以添加callback的,添加callback后,即使这个改变已经发生,callback也会收到结果的回调。(告知承诺的结果)
这个与event监听不一样,event的callback添加之后只能在后面的事件发生时收到调用,前面的就都丢失了。两者其实本来就是两个概念。
简而言之,Promise是一个提供统一接口操作的链式的异步执行概念。
Promise也可以理解成一个事务,一旦开始就无法取消,Pending状态中更细致的情况无法得知,比如是刚开始,还是快执行完了,需要在任务中单独添加callback函数去记录和捕捉错误。
基本用法
//待更
类型
//待更
all() race()
//待更
done() finally()
//待更
应用
//待更
注意事项
//待更
网友评论