promsie一般用来解决回调地狱
什么是回调地狱?
就是回调函数中还有回调函数,
如何解决回调地狱的?
将异步的代码写为同步
promise有三个状态:等待,成功和失败
当等待状态变成成功或者是失败的时候,状态是不可逆转的
promise的缺点就是不知道你的进行中是刚开始还是快结束了
promise.all 是promise的api,可以让多个请求一起执行
一般不建议使用all请求很多个接口请求,关联性很强,如果一个失败,就不会执行.then
.catch是捕获异常,解决.all的缺点在.catch里面进行resolve处理
如果平常的代码要捕获异常要用try catch
const p1 = new Promise(resolve => {
const a =b;
resolve(a);
}).catch(()=>{
return Promise.resolve('aaab')
});
const p2 = new Promise(resolve => {
const a =1;
return resolve(a);
}).catch(()=>{
return Promise.resolve('aaa')
});
Promise.all([p1,p2]).then((data)=>{
console.log('then 成功',data);
}).catch((err)=>{
console.log('333');
console.log('errr',err);
})