调用then方法 then方法返回结果是Promise对象,对象状态由回调函数的执行结果决定
如果回调函数中返回的结果是非promise类型的属性,状态为成功,返回值为对象的成功
then方法是可以只指定一个回调的
<script>
// 创建Promise对象
const p =new Promise((resolve,reject)=>{
setTimeout(()=>{
resolve('用户数据')
// reject('用户数据')
},1000)
});
// 调用then方法
// 1.如果回调函数中返回的结果是 非Promise 类型的属性,状态为成功返回值为对象的成功的值
const result = p.then(value =>{
// 输出用户数据
console.log(value);
// 1.非Promise类型的属性
// return 123;
//2.是一个Promise对象
return new Promise((resolve,reject)=>{
resolve('ok')
// reject('error')
});
// 3.抛出错误
// throw new Error('出错了!');
throw '出错了'
},reason=>{
console.warn(reason);
})
console.log(result);
</script>
链式调用可以避免回调地狱