promise的个人理解

promise概述
  • Promise是抽象异步处理对象以及对其进行各种操作的组件,可以将复杂的异步处理轻松的进行模式化。其实就是分模块的去按部就班的去处理一些操作,比如,我们需要执行代码块,然后获取返回值再去拿着这个返回值去进行下面的操作,这个时候我们就是可以去使用promise
  • 在js中 代码是单线程的,所以在上述的行为中我们可以通过回调函数去解决上述问题,但是但是回调函数一层层的太多了就有麻烦了,promise就是可以很方便的去解决了这个麻烦 写个列子
// 我们的需求是获取id然后去根据id去操作其他
function getId(){
  return new Promise(function(resolve, reject){
    fetch(url).then(res => {
      resolve(res)
    }).catch( error => {
      reject(error)
    })
  })
}
getId().then(id => {
  //这个适合就是我们拿到id的时候
}).catch(error => {
  //返回错误id的时候执行
})
promise的实现
  • 首先promise存在三个状态 也是互斥的唯一状态pending(等待中) resolve(解决) reject(拒绝)
    过程就是根据你的操作去返回解决或者拒绝,拒绝即结束 接下来的链式结果也即结束,如果请求返回为真也继续执行
let p1 = new Promise(function(resolve, reject){
  resolve()
})
p1.then(...).then(...).then(...).catch(...)
  • 还就两种情况可以认为是并集和或者执行 如下p1和p2都通过可以继续执行
let p1 = new Promise(...)
let p2 = new Promise(...)
// 都返回结果执行
Promise.all([p1,p2]).then(...)
// 只要有一个率先返回解决就执行
Promise.race([p1,p2]).then(...)
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值