一段话弄懂Async await
在我们日常开发中,经常会遇到一个接口需要的参数要通过另一个接口的返回中获得。或者当我们想让两个函数一先一后执行的时候,就可以用到async await。
async await是什么?是处理异步的一种方式,比起Promise写法更加简洁。
async表示声明一个异步函数,内部用await关键字等待这个异步函数返回的结果。函数添加了async,它的返回值会被包装成peomise对象,await接收promise并把结果转换为返回值或者一个异常。await会阻塞async函数内部在它之后的代码。看过一个文章上说:打个比方,await是学生,async是校车,校车必须等人齐了才能开车。就是说等所有await函数执行完毕后,才会告诉promise是成功了还是失败了,执行then或者catch。
上代码:
async function foo() {
const result1 = await request('aaa') // result1结果是'aaa'
const result2 = await request(result1 + 'bbb') // result2结果是'aaabbb'
const result3 = await request(result2 + 'ccc')
console.log(result3) // 'aaabbbccc'
}
foo()
再附上自己Vue3项目中的一段代码:
这也就是解决回调地狱的问题。