前端异步解决方案

四种异步解决方案

1、回调函数

回调简单地理解为一个函数作为参数传递给另一个函数,回调是早期最常用的异步解决方案之一
缺点:代码不优雅,可读性差,不易维护,耦合度高,层层嵌套造成回调地狱

2、Promise(es6)

Promise是一种异步编程的解决方案。简单来说,Promise 就是对异步的执行结果的描述对象
优点:
  • 支持多个并发请求,获取并发请求中的数据
  • 提升代码可读性(异步嵌套,形成回调地狱,可读性差)
缺点:
  • 依然链式调用then
  • 无法取消promise
  • Promis.all需要控制并发数,否则出现性能问题
异常穿透:在promise末尾添加catch,前面任何一个请求失败,都可以在catch中捕获
 

3、Generator(es6)

Generator其实就是一个函数,只不过是一个特殊的函数。Generator 的特别之处在于它可以中途停止
优点:优雅的流程控制方法,允许函数被中断地执行。
缺点:Generator函数的执行必须依赖executor,对于只做异步处理还是不太方便。

4、async/await(es8)

优点:
  • 减少回调函数嵌套,提升了代码可读性
缺点:
  • 只能串行,不能并发请求
误用 await 可能会导致性能问题,因为 await 会阻塞代码。
posted @ 2024-07-20 11:15  alisa.huang  阅读(1)  评论(0编辑  收藏  举报