Promise实例化对象的状态只能从pending到fulfilled或者是pending到rejected,不能从fulfilled到rejected或者反之都不行
then:指定用于得到成功value的成功回调和用于得到失败reason的失败回调,并且将返回的一个新的Promise实例化对象
成功的状态:执行then方法的第一个回调函数
失败的状态:执行then方法的第二个回调函数
then方法的返回值的Promise实例化对象的状态取决于回调函数中的内容
如果返回为非Promise实例化对象,则得到一个成功的Promise
如果返回的是Promise实例化对象,则Promise实例化对象的状态和结果值将直接影响result常量的状态和结果值
如果抛出异常,则新的Promise实例化对象(result)为失败的Promise
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
</head>
<body>
<!-- Promise实例化对象的状态只能从pending到fulfilled或者是pending到rejected,不能从fulfilled到rejected或者反之都不行 -->
<script>
const p1 = new Promise((resolve, reject) => {
// 调整状态
resolve('ok')
// reject('error')
})
// console.log(p1);
/*
* then:指定用于得到成功value的成功回调和用于得到失败reason的失败回调,并且将返回的一个新的Promise实例化对象
* 成功的状态:执行then方法的第一个回调函数
* 失败的状态:执行then方法的第二个回调函数
*
* then方法的返回值的Promise实例化对象的状态取决于回调函数中的内容
* 如果返回为非Promise实例化对象,则得到一个成功的Promise
* 如果返回的是Promise实例化对象,则Promise实例化对象的状态和结果值将直接影响result常量的状态和结果值
* 如果抛出异常,则新的Promise实例化对象(result)为失败的Promise
*/
const result = p1.then(res => {
// return new Promise((resolve, reject) => {
// // resolve('success')
// reject('error')
// })
throw '异常信息'
}, err => {
console.log(err);
})
console.log(result);
</script>
</body>
</html>