---
url: https://sugarat.top/interview/js/asyncawait.md
---

# async 及 await 的特点，它们的优点和缺点分别是什么？await 原理是什么？

## 特点

* 一个函数如果加上async 那么其返回值是Promise,async 就是将函数返回值使用 Promise.resolve() 进行包裹,和then处理返回值一样
* await只能配合async使用 不能单独使用

## 优点

* 相比于Promise来说优势在于能够写出更加清晰的调用链,并且也能优雅的解决回调地狱的问题

## 缺点

* 因为await将异步代码变成了同步代码,如果多个异步之间没有关系,会导致性能降低

## 原理

* await 就是 generator 加上 Promise 的语法糖，且内部实现了自动执行 generator
