1) then方法
2)、then方法的参数
p.then(第一个参数是成功的回调函数,第二个参数是失败的回调函数);
<script> const p = new Promise((resolve, reject)=> { // 通过调用resolve, 传递参数, 改变 当前promise对象的 结果 resolve('成功的结果') //reject('失败的结果') }); // then方法函数 // 参数 // 1. 是一个成功的回调函数 // 2. 是一个失败的回调函数 // 返回值: 是一个promise对象 p.then(()=>{ // 当promise的状态是fulfilled时, 执行 console.log('成功时调用') }, () => { // 当promise的状态是rejected时, 执行 console.log('失败时调用') }); console.dir(p) </script>
3)、通过调用resolve, 传递参数, 改变 当前promise对象的结果
<script> const p = new Promise((resolve, reject)=> { // 通过调用resolve, 传递参数, 改变 当前promise对象的 结果 resolve('成功的结果') //reject('失败的结果') }); // then方法函数 // 参数 // 1. 是一个成功的回调函数 // 2. 是一个失败的回调函数 // 返回值: 是一个promise对象 //调用then方法 //value 值 //reason 理由 p.then((value)=>{ // 当promise的状态是fulfilled时, 执行 console.log('成功时调用'+value) }, (reason) => { // 当promise的状态是rejected时, 执行 console.log('失败时调用'+reason) }); console.dir(p) </script>
4)、then方法返回一个新的promise实例, 状态是pending
5)、promise的状态不改变, 不会执行then里的方法
<script> // 如果promise的状态不改变, then里的方法不会执行 new Promise((resolve, reject) => { }).then((value) => { console.log('成功') }, (reason) => { console.log('失败') }); </script>
6)、在then方法中, 通过return将返回的promise实例改为fulfilled状态
<script> // 如果promise的状态不改变, then里的方法不会执行 const p = new Promise((resolve, reject) => { resolve() }) const t = p.then((value) => { console.log('成功') // 使用return可以将t实例的状态改成fulfilled return 123 }, (reason) => { console.log('失败') }) t.then((value) => { console.log('成功2', value) }, (reason) => { console.log('失败') }) </script>
7)、总结:
-
如果promise的状态不改变, then里的方法不会执行
-
使用return可以将t实例的状态改成fulfilled
8)、如果在then方法中, 出现代码错误, 会将返回的promise实例改为rejected状态
<script> // 如果promise的状态不改变, then里的方法不会执行 const p = new Promise((resolve, reject) => { resolve() }) const t = p.then((value) => { console.log('成功') // 使用return可以将t实例的状态改成fulfilled //return 123 // 如果这里的代码出错, 会将t实例的状态改成rejected console.log(a) }, (reason) => { console.log('失败') }) t.then((value) => { console.log('成功2', value) }, (reason) => { console.log('失败', reason) }) </script>
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步