1、回调函数
- 当一个函数被作为参数传入到另一个函数时,并且该函数并不会立即执行,当满足某个条件时才执行该函数,这个函数就叫做回调函数
2、同步异步
- 同步任务:在主线程中,只有前一个任务完成后才能执行下一个任务
- 异步任务:不能进入主线程队列中,而是进入到异步队列中,前一个任务完成与否不影响下一个任务完成,不阻塞后续执行的任务
3、回调地狱
- 回调函数中嵌套着回调函数,这种情况就叫做回调地狱,代码可读性差,可维护性差
4、Promise对象
- 一个原生的JavaScript对象,是一种异步编程的解决方案,通过一个回调函数免去更多的回调
5、Promise的三个状态
- pending(初始状态,等待中)
- resolved(已经解决)
- rejected(已经失败)
6、Promise的.then方法和.catch方法
- 都是promise返回结果之后执行的回调函数
- .then接收resoleved(已经解决)传递过来的信息
- .catch接收rejected(已经失败)传递过来的信息
7、Promise的优点
- promise对象的三种状态不受外界影响。只有异步操作的结果,可以决定当前是哪一种状态
- 它的状态改变只有两种,从pending变成resolved和从pending变成rejected,只有这两种情况发生。状态改变了,就凝固了,不会再变,会一直保持这个结果
8、Promise的缺点
- 无法取消promise,一旦建立就会立即执行,无法中途取消
- 如果不设置回调函数,promise内部抛出的作物,不会反应到外面
- 当处于pending的时候,无法得知目前进展到哪一个阶段