Skip to content

async 及 await 的特点,它们的优点和缺点分别是什么?await 原理是什么?

特点

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

优点

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

缺点

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

原理

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