回调地狱
- 多层嵌套的问题;
- 每种任务的处理结果存在两种可能性(成功或失败),那么需要在每种任务执行结束后分别处理这两种可能性;
Promise 就是为了解决上面的问题
Promise
Promise 通过三大技术手段来解决回调地狱:
- 回调函数延迟绑定;
- 返回值穿透;
- 错误冒泡;
回调函数不是直接声明,而是通过后面的 then 方法传入,这就是回调函数延迟绑定。
Promise 的状态
Promise 的本质是一个有限状态机,存在三种状态:
- PENGDING(等待)
- FULFILLED (成功)
- REJECTED (失败)
对于 Promise 而言,状态的改变不可逆,即由等待状态变为其他的状态后,就无法再改变了。