Promise
1、Promise的基本使用
// 创建
function a(){
return new Promise((resolve, reject)=>{
setTimeout(() => {
const num = Math.floor(Math.random()*10)
if(num>5) {
resolve('成功')
}else{
reject('失败')
}
}, 2000);
})
}
// 使用
a().then((res)=>{
console.log('成功')
}).catch((err)=>{
console.log('失败')
})
2、promise.all的使用
(1)使用前提:多个promise函数,需要统一处理
(2)promise.all使用:有一个promise函数失败,则promise.all返回失败走catch,必须每一个promise函数成功,promise.all才能返回成功走then
// 创建
function a(){
return new Promise((resolve, reject)=>{
setTimeout(() => {
const num = Math.floor(Math.random()*10)
if(num>5) {
resolve('成功')
}else{
reject('失败')
}
}, 2000);
})
}
function b(){
return new Promise((resolve, reject)=>{
setTimeout(() => {
const num = Math.floor(Math.random()*10)
if(num>5) {
resolve('成功')
}else{
reject('失败')
}
}, 2000);
})
}
// 使用
let arr = [a(), b()]
Promise.all(arr).then((res)=>{
console.log('arr中全部成功:走这里')
}).catch((err)=>{
console.log('arr中只要有一个失败:走这里')
})
// 封装
funPromiseList() {
return new Promise((resolve, reject) => {
Promise.all(arr).then((res) => {
resolve(true);
}).catch(() => {
reject("");
});
});
}