ES6 promise

一. promise的三种状态

  1. pending[待定]: 初始状态( 刚开始实例化promise时的状态 )

  2. fufilled[实现]:  操作成功 ( 执行完毕,调用resolve的时候,会被切换为fufilled状态 )

  3. rejected[被否决] : 操作失败 ( 执行出错,调用reject的时候,会被切换为rejected状态 )

promise的状态一旦发生改变,就会触发.then()里的响应函数来处理后续步骤

promise的状态一经改变是不会再改变的

promise一经创建,执行器立刻开始执行

promise是一个队列,当promise已经执行完成后, 在.then也会接收到promise返回的结果

.then()接收两个函数作为参数, 分别代表fufilled和rejected

.then()会返回一个新的promise实例,所以他可以链式调用

当前面的promise的状态改变时, .then()就会根据其最终状态,选择特定的状态响应函数执行

状态响应函数可以返回一个新的promise,或返回其他值,不返回值也可以(默认返回undefined)

如果返回新的promise, 那么下一级的.then()会在新的promise状态改变之后执行   (如果返回的是其他的任何值,则会立即执行下一级的.then())

promise会自动捕获内部异常,并交给rejected响应函数处理

catch也会返回一个promise实例,如果其中没有抛出错误的话,那么它返回的promise实例也是一个fulfilled的状态, 所以后面的.then()还是会被执行

原文地址:https://www.cnblogs.com/mailyuan/p/11294528.html