一. 理解
-
抽象理解
promise是JS中进行异步编程的新的解决方案(旧的是纯回调函数)
-
具体表达
- 从语法上来说:Promise是一个构造函数
- 从功能上来说:Promise对象用来封装有个异步操作并可以获取其结果
二.Promise状态的改变
Promise对象只有三种状态。
异步操作“未完成”(pending)
异步操作“已完成”(resolved,又称fulfilled)
异步操作“失败”(rejected)
这三种的状态的变化途径只有两种。
异步操作从“未完成”到“已完成”
异步操作从“未完成”到“失败”。
这种变化只能发生一次,一旦当前状态变为“已完成”或“失败”,就意味着不会再有新的状态变化了。
因此,Promise对象的最终结果只有两种。
异步操作成功,Promise对象传回一个值,状态变为resolved,成功的结果为value。
异步操作失败,Promise对象抛出一个错误,状态变为rejected,失败的结果为reason。
三.为什么要使用Promise?
1)指定的回调函数的方式更加灵活【为什么这么说?】
-l旧的纯回调函数必须在启动异步任务前指定
-而promi