首先 自我介绍一下 好吧 这并不重要
以下都是个人对Promise的感悟 希望对各位兄弟姐妹有帮助!
说起Promise 先解释下对象
对象
对象嘛 就是new一个对象鸭
其实在座的各位都是一样的 当时我也是这么想的 结局有点离谱
对象分为俩种 函数对象 实例对象(对象)
实力对象
它简称为对象 说白了就是 兄弟听说你没对象 我给你new一个
这就是实例对象 简称为对象
函数对象
把函数当对象来调用 例如 $.get()
$就是一个函数 它通过对象的方式来调用
好了 进入主题了!
Promise
了解Promise可以直观的从三部分开始 (W W H)(what why how)俗称 happy 三连问了
W :What 什么是Promise
W:Why 为什么要用Promise
H:How 如何取使用Promise
别担心 继续扩大你的眼睛往下扫
Promise 是什么
抽象表达
是js中进行异步编程的解决方案
具体表达
语法:Promise构造函数
功能:Promise对象用来封装一个异步函数操作获取结果
Promise状态改变
pending 变为 resolved
pending 变为 rejected
一个Promise对象只能改变一次(也就是说只能改变一次状态)
成功的数据(resolved)会接收 value
失败的数据(rejected)会接收 reason
为什么要用Promise
指定回调函数方式更加灵活
旧的:必须再启动异步任务前指定
Promise:一般再异步任务之后 也可以得到结果再取
支持链式 解决回调地狱
回调地狱:回调函数嵌套调用,外部回调函数异步执行结果是嵌套回调函数执行的条件(就是 >)
缺点:非常不利于阅读 读着读着就想着该换电脑了
不利于异常处理
解决方案
Promise链式调用 通过.then来一层一层结构清晰
终极解决方案
async/await
就是再函数前面加async 表达式前面加await 就会直接返回value
区别
Promise主要里面还有函数
async/await 就我们程序员角度看 就只有这俩 没有函数 敢敢当当
如何使用Promise
函数对象方法
all
接收数组 只有都成功的时候才输出成功 返回value
race
接收数组 只要一个成功就输出成功 返回value
resolve
成功 :返回一个Promise实例对象 结果用value接收
reject
失败:返回一个Promise实例对象 结果用 reason接收
实例对象方法
then
接收成功的结果 value
catch
捕获失败的结果 reason
一不留神就写完了
加油!再这个有梦想的年纪,千万不要放弃实现梦想的权力