# 2.1promise是什么
# 2.1.1理解
抽象表达:
promise是一门新的技术(ES6规范)
promise是js中进行异步编程的新解决方案
备注:旧方案是单纯使用回调函数
具体表达:
- 从语法上来说:promise是一个构造函数
- 从功能上来说:promise对象用来封装一个异步操作并可以获取其成功/失败的结果值
# 2.1.2 Promise 的状态
- pemding 变为resolved
- pending变为rejected
说明只有这2种,且一个promise对象只能改变一次 无论变为成功还是失败,都会有一个结果数据 成功的结果数据一般称为value 失败的结果一般称为reason
实例对象种的一个属性[PromoseState]
pending 未决定的
resolved/fullfilled 成功
rejected 失败
# 2.1.3Promise对象的值
实例对象中的另一个属性[PromiseResult]
保存着异步任务 [成功/失败]的结果
- resolve
- reject
# 2.1.4Promise基本流程

# 2.2为什么要用Promise
# 2.2.1指定回调函数的方式更加灵活
- 旧的:必须在启动异步任务前指定
- promise:启动异步任务 =>返回promise对象 =>给promise对象绑定回调函数(甚至可以在异步任务结束后指定/多个)
# 2.2.2支持链式调用,可以解决回调地狱问题
什么是回调地狱?
回调函数嵌套使用,外部回调函数异步执行的结果是嵌套的回调执行的条件
回调地狱的缺点?
不便于阅读
不便于异常处理
解决方案?
promise链式调用
← Git命令 如何使用Promise →