<script>
// 1.什么时候执行
// pending->fulfilled时,执行then的第一个回调函数
// pending->rejected时,执行then的第二个回调函数
// 2.执行后的返回值
// then方法执行后返回一个新的Promise对象
// const p = new Promise((resolve, reject) => {
// resolve();
// reject()
// })
// const p2 = p.then(
// () => { },
// () => { }
// )
// .then()
// .then();
// console.log(p, p2, p === p2);
// 3.then方法返回的Promise对象的状态改变
const p = new Promise((resolve, reject) => {
// resolve();
reject()
})
const p2 = p.then(
() => {
console.log('success');
},
() => {
console.log('err');
// 在then的回调函数中,return后面的东西,会用Promise包装一下
// return undefined;
// 等价于
// return new Promise((resolve, reject) => {
// resolve(undefined);
// })
// return 123;
// return new Promise((resolve, reject) => {
// resolve(123);
// })
// 默认返回的永远都是成功状态的 Promise 对象
return new Promise((resolve, reject) => {
reject('reason');
})
}
).then(
data => {
console.log('success2', data);
return undefined;
return new Promise(resolve => {
resolve(undefined)
})
},
err => {
console.log('err2', err);
}
)
</script>