Promise 复习

96 阅读1分钟
function pro1() {
  return new Promise((resolve, reject) => {
    reject('pro1 log')
  })
}

function pro2() {
  return new Promise((resolve, reject) => {
    resolve('pro2 log')
  })
}

promise 一个接着一个调用
pro1()
  .then((res) => {
    console.log(res)
    return pro2()
  })
  .then((res) => {
    console.log(res)
  })
  
promise 统一返回 有一个 失败 则 不执行
Promise.all([pro1(), pro2()]).then((values) => {
  console.log(values)
})

promise 统一返回 但 不依赖成功 失败关系
Promise.allSettled([pro1(), pro2()]).then((results) => {
  results.forEach((item) => {
    console.log(item)
  })
})

promise 统一返回  只返回成功的
Promise.any([pro1(), pro2()]).then((values) => {
  console.log(values)
})

所有 promise 谁先返回 就先执行谁
Promise.race([pro1(), pro2()]).then((value) => {
  console.log(value)
})