当使用异步操作进行网络请求时,可能会有遇到地狱请求的问题,所以为了解决这个问题使用promise来解决。具体的用法如下:
promise.all的用法:
Promise.all([
new Promise((resolve,reject)=>{
setTimeout(()=>{
resolve('aaa')
},1000)
}),
new Promise((resolve,reject)=>{
setTimeout(()=>{
resolve('bbb')
},1000)
})
]).then(message=>{
console.log(message);
})
如图结果则是返回一个数组,里面存放着两个异步操作的数据。
promise的链式结构以及用法:
new Promise((resolve,reject)=>{
setTimeout(()=>{
resolve('我是promise')
},1000)
}).then(message=>{
console.log(message);
return new Promise((resolve,reject)=>{
// resolve(message +'1')
reject('err')
})
}).then(message=>{
console.log(message);
}).catch(err=>{
console.log(err);
})
在then后还可以继续返回一个promise,以此返回多个异步操作的网路请求,而且如图的reject以及resolve两者只可以运行一个,如果使用了resolve则才可以运行后面的then函数,但是如果是拒绝接受网络请求则是reject函数,而使用catch来捕捉拒绝的数据,