解决回调地狱的终极办法!!!
语法:
1.async书写在函数的前面,是对这个函数的修饰关键字
2.await的使用,必须有async关键字,await才可以在函数内部使用
3.await等待的必须是一个promise对象,才会有等待的结果,不然没有意义
+ 当你满足了以上三个条件以后,你的 promise对象本该在then里面接收的结果
=> 就可以直接定义变量接收
=> 你的 promise 里面的异步代码没有结束之前
=> 不会继续向下执行
// fn是一个异步函数
async function fn(){
var res1 = await new Promise((resolve,reject)=>{
// await关键字,这个函数必须要有async
setTimeout(()=>{
console.log(11111)
resolve('成功1')
},2000)
})
var res2 = await new Promise((resolve,reject)=>{
// await关键字,这个函数必须要有async
setTimeout(()=>{
console.log(22222)
resolve('成功2')
},2000)
})
var res3 = await new Promise((resolve,reject)=>{
// await关键字,这个函数必须要有async
setTimeout(()=>{
console.log(33333)
resolve('成功3')
},2000)
})
console.log(res1)
console.log(res2)
console.log(res3)
}
fn()