promise
对象用于异步计算,在未来处理某件事,将异步操作队列化,按照期望的顺序执行,返回期望的结果,可在对象之间传递和操作promise,帮助我们处理队列
1、异步操作以事件为主
2、回调主要出现在ajax请求和File APInodejs 无阻塞高并发
异步回调:
1、嵌套层次很深,代码难以维护
2、无法正常使用return 和 throw
3、无法正常检索堆栈信息
4、多个回调之间难以建立联系
**promise 设计**
new Promise(
/*执行器 executor*/
function(resolve,reject){
//有段耗时很长的异步操作
resolve(); //数据处理完成
reject();//数据处理出错
}
)
.then(function A(){
//成功,下一步
},function B(){
//失败,做相应处理
})
new Promise( resolve => {
setTimeout(() => {
throw new Error('bye');
},2000);
).then(value => {
console.log(value);
}).catch( error => {
console.log(error);
})
promise三个状态:
pending【待定】初始状态
fulfilled【实现】操作成功
rejected【被否决】操作失败
promise常用函数
promise.all()