Promise概括
用自己的理解来说就是:从宏观上讲Promise是为了解决异步编程而出现的一个工具,从微观层面上讲Promise是一个构造函数,我们封装一个异步操作得到一个结果值。
1.ES6新增的更好的异步的变成解决方案(相对于纯回调方式)
可以异步操作启动后或完成后,再指定回调函数得到异步结果数据
解决嵌套回调地狱问题 --promise链式调用
2.Promise对象有三种状态
pending(未确定的)
resolved(成功)
rejected(失败)
3.Promise状态的2种变化
pending=>resolved
pending=>rejected
变化并不可逆!!!
4.Promise then()的理解
then()总是返回一个新的promise
新promise的结果状态由then指定的回调函数执行的结果决定
抛出错误 -- 返回失败的promise -- 返回成功的promise -- 返回其他任何值
5.Promise all()的理解
-
批量/一次性发送多个异步请求
-
当都成功时, 返回的promise才成功
-
一旦有一个失败的, 返回的promise就失败了
6.async/await与promise的关系
-
async/await是消灭异步回调的终极武器
-
作用: 简化promise对象的使用, 不用再使用then/catch来指定回调函数
-
但和Promise并不互斥
- 反而, 两者相辅相成
- 执行async函数, 返回promise对象
- await相当于promise的then
- try...catch可捕获异常, 相当于promise的catch