Day22 ES6 Promise Part1
2019-04-24 本文已影响0人
JSleefat
定义
- 主要用于异步计算
- 可以将异步操作队列化,按照期望的顺序执行,返回符合预期的结果
- 可以在对象之间传递和操作Promise,帮助我们处理队列
回调问题
- 嵌套层次深,难以维护
- 无法正常使用return和throw
- 无法正常检索堆栈信息
- 多个回调之间难以建立联系
三个状态
- pending
- fulfilled
- rejected
一经改变 不会再变
then嵌套
会先执行then内部的promise再顺序执行外层的promise
错误处理方法
reject("错误信息").then(null,(message)=>{})
throw new Error("错误信息").catch((message)=>{})
.catch().then()
捕获处理异常后,可以继续执行
promise.all
- 接收数组参数
- 可以是promise对象,也可以是其他值,不过只有promise会等待状态改变
- 当所有子promise都完成,该promise完成,返回值是全部值的数组
- 有任何一个失败,该promise失败,返回值是第一个失败的子primise的结果