Promise

98 阅读1分钟

原理:

  1. Promise 是一个对象通过它可以获取异步操作的消息

  2. 构造函数 Promise 必须接收一个函数(handle)作为参数,函数又包含 resolve 和 reject

状态:

1.Pending 等待态

2.Fulfilled 执行态

3.Rejected 拒绝态

方法:

1.then

2.catch

3.finally

4.resolve

5.reject

6.all:

const result = Promise.all([p1, p2, p3]) 

多文件上传(碎片生成)

7.race: const result = Promise.race([p1, p2, p3])

//请求某个图⽚资源
function requestImg(){
  var p = new Promise((resolve, reject) => {
    var img = new Image()
    img.onload = function(){
    resolve(img)
  }
  img.src = '图⽚的路径'
})
  return p
}
//延时函数,⽤于给请求计时
function timeout(){
  var p = new Promise((resolve, reject) => {
    setTimeout(() => {
      reject('图⽚请求超时')
    }, 5000)
  })
  return p
}
Promise.race([requestImg(), timeout()]).then((data) =>{
  console.log(data)
}).catch((err) => {
  console.log(err)
})

8.any

const result = Promise.any([p1, p2, p3])

从最快的服务器检索资源,如果存在多台服务器,从最快的一台服务器获取资源。

9.allSettled

const result = Promise.allSettled([p1, p2, p3])

以数组形式返回全部结果