<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
</head>
<body>
<div onclick="promiseClick()">开始异步请求</div>
</body>
<script>
function promiseClick(){//一个一个调用
f0().then(data=>{
console.log(data)
return f1(data)
}).then(data=>{
console.log(data)
return f2(data)
}).catch(error=>{
console.log(error)
return f2(error)
}).then(data=>{
console.log(data)
})
}
// function promiseClick(){//全部调用后又返回
// Promise.all([f3,f4]).then(res=>{
// console.log(res)
// })
// }
// function promiseClick(){//只要有一个返回就返回
// Promise.race([f3,f4]).then(res=>{
// console.log(res)
// })
// }
function f0(){
return new Promise((resolve,reject)=>{
setTimeout(_=>{
return resolve({name:'王哈哈哈'})//成功
},2000)
})
}
function f1(data){
return new Promise((resolve,reject)=>{
setTimeout(_=>{
if(10>12){
data.age=222
return resolve(data)//成功
}else{
data.age=666
return resolve(data)
}
},2000)
})
}
function f2(data){
return new Promise((resolve,reject)=>{
setTimeout(_=>{
data.love=33
return resolve(data)
},2000)
})
}
let f3=new Promise((resolve,reject)=>{
setTimeout(_=>{
return resolve('哈哈哈哈')
},2000)
})
let f4= new Promise((resolve,reject)=>{
setTimeout(_=>{
return resolve('heheh')
},1000)
})
</script>
</html>