// var p = Promise.resolve('成功了')
// const p = Promise.reject('失败了')
// 失败可以用两种方式接收
// 1. .catch捕捉
// p.catch(err => {
// console.log(err)
// })
// 2. .then方法的第二个参数的回调函数
// p.then(res => {
// console.log(res)
// }, err => {
// console.log(err)
// })
const p1 = new Promise((resolve, reject) => {
const result = true
setTimeout(() => {
if (result) {
resolve('p1成功了')
} else {
reject('p1失败了')
}
}, 1000)
})
const p2 = new Promise((resolve, reject) => {
const result = 13
setTimeout(() => {
if (result > 9) {
resolve('p2成功了')
} else {
reject('p2失败了')
}
}, 1000)
})
const p3 = new Promise((resolve, reject) => {
const result = 13
setTimeout(() => {
if (result > 20) {
resolve('p3成功了')
} else {
reject('p3失败了')
}
}, 1000)
})
// p1.then(res => {
// console.log(res)
// return p2
// }, err => {
// console.log(err)
// }).then(res => {
// console.log(res)
// return p3
// }, err => {
// //进入到失败状态
// console.log(err)
// }).then(res => {
// console.log(res)
// }, err => {
// //进入到失败状态
// console.log(err)
// })
// Promise.all([p1,p2,p3]).then(res => {
// console.log('都成功了')
// }).catch(err => {
// console.log(err)
// })
function p4() {
return new Promise((resolve, reject) => {
const result = 13
setTimeout(() => {
if (result > 12) {
resolve('p3成功了')
} else {
reject('p3失败了')
}
}, 1000)
})
}
// async修饰的函数默认返回一个promise,return的是成功返回的参数。
// 通过调用这个函数的then和catch方法拿到await得到的结果
async function p5() {
const res = await p1
return res
}
p5().then(res => {
console.log(res)
}).catch(err => {
console.log(err)
})
console