<script>
对比
/*
ajax_get({
url: 'data/a.php',
success(res){
console.log(res)
console.log('第一次的结果')
ajax_get({
url: 'data/b.php',
query: {a: res},
success(res){
console.log(res)
console.log('第二次的结果')
ajax_get({
url: 'data/c.php',
query: { b: res },
success(res){
console.log(res)
console.log('第三次的结果')
}
})
}
})
}
})
*/
//回调地狱终极解决方案,可以让咱们把异步的代码写成同步的形式,让代码结构更为清晰合理
async function fn(){
let aj1 = await pAjax({url: 'data/a.php'})
console.log(aj1)
let aj2 = await pAjax({ url: 'data/b.php', query: {a: aj1} })
console.log(aj2)
let aj3 = await pAjax({ url: 'data/c.php', query: { b: aj2 } })
console.log(aj3)
}
fn()
promise扩展
<script>
// let aj1 = ajax_get({url: 'data/a.php'})
//注意点:Promise方法必须配合Promise使用才行
let aj1 = pAjax({ url: 'data/a.php' })
let aj2 = pAjax({ url: 'data/b.php' })
let aj3 = pAjax({ url: 'data/c.php' })
//同时可以接收多个请求,必须所以的请求都回来,才能执行最终的结果
// Promise.all([aj1, aj2, aj3]).then((res)=>{
// console.log(res)
// })
//那个请求快就使用那个
Promise.race([aj1, aj2, aj3]).then((res)=>{
console.log(res)
})