微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

每天前端学习 关于Promise

今天工作遇到个关于Promise的小问题,结果是自己太新手,后来解决

function test() {
    return new Promise (resolve, reject) {     
      reject('超时')    
    }
}

使用了await, 必须catch才能让阻塞放开

 async function () {
    const obj = await test() // 若不catch则会一直阻塞在这
    console.log('打印了')  // 没打印   
}

正确: 
 async function () {
  const obj = await test().catch(e => {})
  console.log(obj)  // '超时'  
}

  

 

若 要等待多个结果回来,再进行返回,则可以使用 Promise.all(arg1,arg2,arg3.....)

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

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

let p3 = Promise.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)      // 失败了,打出 '失败'
})

 

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐