1. promise是同步执行的 先进入 pending 状态 ,
promise的执行结果返回的还是一个promise类型
2.执行结果是异步返回的
成功进入 fulfill 状态 执行异步回调 .then() (状态凝固)
失败进入 reject 状态 执行异步回调 .catch() (状态凝固)
3. .then或.catch返回的还是Promise类型,
所以可以链式调用promise.then().then().then().then().then()...
也可以捕获错误 promise.then().catch() (.catch()捕获错误有冒泡性质)
举例: const p1=new Promise()
p1(.then()/p2).catch() 在这里其实是p2的.catch()捕获了p1的错误回调
4.状态凝固:无论是 pending --> fulfill,还是pending-->reject 都会状态凝固(状态只会改变一次)
参考:你是怎么理解ES6中 Promise的?使用场景? | 前端之家