Promise
Promise 是异步编程的一种解决方案,比传统的解决方案——回调函数和事件——更合理和更强大。所谓Promise,简单说就是一个容器,里面保存着某个未来才会结束的事件(通常是一个异步操作)的结果。从语法上说,Promise 是一个对象,从它可以获取异步操作的消息。Promise 提供统一的 API,各种异步操作都可以用同样的方法进行处理。
作用
解决异步回调问题
语法结构
let promise=new Promise(function(resolve,reject){
// resolve 成功调用
// reject 失败调用
})
promise.then(res=>{
// 成功调用后返回
},err=>{
// 调用失败后.....
})
Promise实例生成以后,可以用then方法分别指定resolve状态和rejecte状态的 回调函数。
语法演示
let a=1;
let promise=new Promise(function(resolve,reject){
if(a==10){
// 01 flag 凝固状态,做好标记
resolve("成功");// resolve 成功调用
}else{
reject("失败");// reject 失败调用
}
})
promise.then(res=>{
// 成功调用后返回
console.log(res); //02 渲染至前端
},err=>{
// 调用失败后.....
console.error(err); //02 渲染失败
})
promise.catch
错误捕捉
promise.catch(rej=>{
console.warn(rej)
})
promise.all
把promise打包,扔到一个数组里面,打包完还是一个promise对象
let p1=Promise.resolve('aaa'); //凝固多个状态结果
let p2=Promise.resolve('bbb');
let p3=Promise.resolve('ccc');
Promise.all([p1,p2,p3]).then(res=>{
// let [res1,res2,res3]=res; //必须解构赋值
console.log(...res);
})