Promise是什么
抽象表达
- promise 是一门新的技术(ES6规范)
- Promise 是JS中进行异步编程的新解决方案
具体表达
- 从语法上来说:Promise是一个构造函数
- 从功能上来说:promise对象用来封装一个异步操作并可以获取其成功/失败的结果
回调函数就是一个被作为参数传递的函数
为什么要使用Promise
指定回调函数的方式更加灵活
- 旧的:必须在启动异步任务前指定
- promise:启动异步任务——返回promise对象——给promise对象绑定回调函数
支持链式调用,可以解决回调地狱问题
1、什么是回调地狱
回调函数嵌套调用,外部回调函数异步执行的结果是嵌套的回调执行的条件
2、回调地狱的缺点
- 不便于阅读
- 不便于异常处理
3、解决方案 - promise链式调用
promise的状态改变
1、pending 变为 resolved
2、pending 变为 rejected
说明 只有这两种,且一个promise对象只能改变一次,无论变为成功还是失败,都会有一个结果数据
成功的结果数据一般称为value,失败的结果数据一般称为 reason
promise 对象的值
实例对象中的另一个属性 [PromiseResult]
保存着对象 [成功/失败] 的结果
- resolve
- reject