Promise 的then方法,会给我们返回一个新的Promise对象
新的Promise对象的执行状态:
- 默认情况下返回的是一个状态为 resolve(成功) 的Promise对象既然是新的Promise 那么就可以接着调用then 新let 一个p2接收
- 当then的回调函数是一个非Promise对象(return { b : 1}) 普通对象,then返回的是一个resolve 的Promise对象
- 当then返回一个 Promise对象时, then返回值,也会变成
let p1 = new Promise((resolve,reject) =>{
// resolve();
reject();
}); // 这一段返回一个Promise对象
let p2 = p1.then((data) =>{ //返回新对象 返回后 可以新建接收p2
console.log("resolve");
return new Promise((resolve,reject)=>{
reject(1) // 第三种情况看P2返回 对象是个状态 他就返回什么对象
// resolve();
})
},(data)=>{
console.log("reject");
// return {
// b : 1
// };
}) // 这一段 返回一个p1.then
p2.then((data) =>{
console.log("P2的resolve");
},(data)=>{
console.log("P2的reject");
}) //这一段返回 p2.then
//后面还可以返回p3