一. 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()还是会被执行