一. 理解
-
抽象理解
-
具体表达
二.Promise状态的改变
Promise对象只有三种状态。
异步操作“未完成”(pending)
异步操作“已完成”(resolved,又称fulfilled)
异步操作“失败”(rejected)
这三种的状态的变化途径只有两种。
异步操作从“未完成”到“已完成”
异步操作从“未完成”到“失败”。
这种变化只能发生一次,一旦当前状态变为“已完成”或“失败”,就意味着不会再有新的状态变化了。
因此,Promise对象的最终结果只有两种。
异步操作成功,Promise对象传回一个值,状态变为resolved,成功的结果为value。
异步操作失败,Promise对象抛出一个错误,状态变为rejected,失败的结果为reason。
三.为什么要使用Promise?
1)指定的回调函数的方式更加灵活【为什么这么说?】
-l旧的纯回调函数必须在启动异步任务前指定
-而promise可以先启动异步任务=>返回promise对象=>给promise对象绑定回调函数
(甚至可以异步任务结束后指定/多个)
o什么是回调地狱?
-回调函数嵌套调用,外部回调函数异步执行的结果是嵌套的回调执行的条件
o回调地狱的缺点?
-不便于阅读-不便于异常处理
o怎么解决?
promise链式调用
o终极解决方案?
async/await
下面举个栗子看看叭= =
=================


四.关于Promise的几个难点
1. 如何改变promise的状态?
2. 一个promise指定多个成功/失败回调函数都会调用?
3. 改变promise状态和指定回调函数的顺序问题?
4. promise.then()返回的新promise结果由什么决定?
5. promise如何串联多个操作任务?
6. promise异常穿透?
7. 中断promise链?
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。