Promise、async、await

对象属性

  • promiseState:状态
    • 未决定:pending
    • 成功的:fulfilled
    • 失败的:rejected
  • promiseResult:保存异步任务处理结果(数据 / 错误信息)

then / catch

  • fulfilled 触发 then
  • rejected 触发catch
  • 状态取决于返回结果 ~ 即在函数中没有抛出错误状态为fulfilled,抛出错误状态为rejected
// PromiseState:rejected
Promise.resolve('ok').then(res => {
  throw new Error('error~~~~~~~~~~')
})

// PromiseState:fulfilled
Promise.reject('error').catch(err => {
   return err
})

resolve

传入非 Promise 参数返回成功状态的 Promise ,传入 Promise 返回传入 Promise 的执行的结果

Promise.resolve(Promise.reject(1)) // PromiseState:rejected
Promise.resolve(Promise.resolve(1)) // PromiseState:fulfilled

reject

reject:传入非 Promise 参数返回失败状态的 Promise ,传入 Promise 参数结果皆为失败状态

Promise.reject(Promise.reject(1)) // PromiseState:rejected
Promise.reject(Promise.resolve(1)) // PromiseState:rejected

静态方法

  • Promise.all
    • 所有 promise 成功以数组形式返回所有promise的执行结果,状态为 fulfilled
    • 其中有一个失败则返回第一个失败的结果,状态为失败
  • Promise.race: 返回最先执行完毕的 promise 的执行的结果,状态为 fulfilled
  • Promise.allSettled :以数组形式返回所有Promise无论成功或失败的执行结果和状态

async、await

  • async
    • 函数默认返回 Promise 对象,相当于自动封装成 Promise.resolve(),抛出异常封装成 Promise.reject()
  • await
    • async 函数中可以没有 await,但 await 必须在 async 函数中
    • 可获取 Promise 中的返回结果,相当于 Promise.then
    • 可使用 try catch 捕获异常
    • 必须等 await 执行完毕方能继续执行 await 之后的代码,相当于同步
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值