四种异步解决方案
1、回调函数
回调简单地理解为一个函数作为参数传递给另一个函数,回调是早期最常用的异步解决方案之一 缺点:代码不优雅,可读性差,不易维护,耦合度高,层层嵌套造成回调地狱2、Promise(es6)
Promise是一种异步编程的解决方案。简单来说,Promise 就是对异步的执行结果的描述对象 优点:- 支持多个并发请求,获取并发请求中的数据
- 提升代码可读性(异步嵌套,形成回调地狱,可读性差)
- 依然链式调用then
- 无法取消promise
- Promis.all需要控制并发数,否则出现性能问题
3、Generator(es6)
Generator其实就是一个函数,只不过是一个特殊的函数。Generator 的特别之处在于它可以中途停止 优点:优雅的流程控制方法,允许函数被中断地执行。 缺点:Generator函数的执行必须依赖executor,对于只做异步处理还是不太方便。4、async/await(es8)
优点:- 减少回调函数嵌套,提升了代码可读性
- 只能串行,不能并发请求