今天工作遇到个关于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] 举报,一经查实,本站将立刻删除。