前端开发那些事儿promise

Promise

2021-06-30  本文已影响0人  王果果

Promise

用于异步操作,主要解决回调地狱问题




  1. 调用 resolved( ) 函数会把Promise状态改变成成功状态
  2. 调用 rejected( ) 函数会把Promise状态改变成失败状态
  3. Promise 默认状态为pending ,进行时状态

注意: .then( )方法只有Promise 状态不为pending时才能接收到结果



  1. 调用resolve()函数里边的参数就是成功的结果 resolve('成功的结果')
  2. 调用rejected()函数里边的参数就是成功的结果 rejected('失败的结果')
const p = new Promise((resolve, reject) =>{
 resolve('成功的结果') //成功状态,fulfilled
 // reject("error") // 失败状态
})
 .then((res)=>{
 console.log(res); //打印的成功的结果
 },(rj)=>{
  console.log(rj); //打印失败的结果
 }
 )
console.log(p);//打印Promise

Promise.all 使用

let p1 = new Promise((resolve, reject) => {
  resolve('成功了')
})

let p2 = new Promise((resolve, reject) => {
  resolve('success')
})

let p3 = Promse.reject('失败')

Promise.all([p1, p2]).then((result) => {
  console.log(result)               //['成功了', 'success']
}).catch((error) => {
  console.log(error)
})

Promise.all([p1,p3,p2]).then((result) => {
  console.log(result)
}).catch((error) => {
  console.log(error)      // 失败了,打出 '失败'
})

Promise.race的使用

let p1 = new Promise((resolve, reject) => {
  setTimeout(() => {
    resolve('success')
  },1000)
})

let p2 = new Promise((resolve, reject) => {
  setTimeout(() => {
    reject('failed')
  }, 500)
})

Promise.race([p1, p2]).then((result) => {
  console.log(result)
}).catch((error) => {
  console.log(error)  // 打开的是 'failed'
})

源链接:https://www.jianshu.com/p/7e60fc1be1b2

上一篇 下一篇

猜你喜欢

热点阅读