回调函数:
1)函数的名字可以做参数
2)这个函数被称作回调函数
不是说这个函数有特别之处,而是这个函数被当做参数传递给了另一个函数
作用:
1)恰当的时候发通知
2)让代码更灵活
3)提高效率
同步回调:把函数b传递给函数a。执行a的时候,回调了b,a要一直等到b执行完才能继续执行;
**异步回调:**把函数b传递给函数a。执行a的时候,回调了b,然后a就继续往后执行,b独自执行。
**回调地狱:**就是为了实现异步回调函数中代码顺序执行而出现的一种操作,它会造成我们的代码可读性非常差,后期不好维护。
**链式编程:**doFunc(x).andThen().andThen().andThen();长这样的
**async/await:**当我们写代码遇到异步回调时,我们想让异步代码按照我们想要的顺序执行,如果按照传统的嵌套方式,就会出现回调地狱,这样的代码不利于维护,我们可以通过Promise对象进行链式编程来解决,这样尽管可以解决问题,但是ES7给我们提供了更加舒适的async/await语法糖,可以使得异步代码看起来更像是同步代码。