一段话弄懂Async await

146 阅读1分钟

一段话弄懂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项目中的一段代码:

1640673504.png

这也就是解决回调地狱的问题。