Promise获取数据的几种方式
Promise获取数据的几种方式一、Promise.all1. 互相不关联的ajax请求:2. 统一获取多个异步请求返回的数据:一、Promise.then一、Promise.all我们平时在项目中可能会请求多个异步结果最后整合到一起的需求,也就是说在一个页面中获取一组数据,需要调用不同的接口最后将他们拼接到一起,在这个数组中可能初始获取了一组数据,但是数据有不全的地方需要我们调用其他的接口...
文章共1,107字 · 阅读需要大约4分钟
一键AI生成摘要,助你高效阅读
问答
·
Promise获取数据的几种方式
一、Promise.all
我们平时在项目中可能会请求多个异步结果最后整合到一起的需求,也就是说在一个页面中获取一组数据,需要调用不同的接口最后将他们拼接到一起,在这个数组中可能初始获取了一组数据,但是数据有不全的地方需要我们调用其他的接口,将缺失的部分再拼接到一起。
- 获取互相不关联的ajax返回数据;
- 使用promise.all()执行多个相互不关联的ajax请求,因为是异步调用,因此需要统一的获取这些ajax请求是否都是成功的;
- 使用promise.all()函数时,将获取的promise.resolve返回的数据存储;
1. 互相不关联的ajax请求:
ajax 异步调用 ,使用promise.all()确保两个数值全部获取到后再执行下面的操作。
//第一个ajax函数:获取第一份数据
getAjax1(){
return new Promise( (resolve,reject) => {
this.$axios(url).then( (response) => {
....数据操作返回需要得到的data
//ajax请求成功后调用resolve函数将data返回
resolve(data);
})
.catch(error){
//失败调用reject函数
reject(error);
}
})
}
//第二个ajax函数 获取第二份数据,两份数据之间相互无关联
getAjax2(){
return new Promise( (resolve,reject) => {
this.$axios(url).then( (response) => {
....数据操作返回需要得到的data
//ajax请求成功后调用resolve函数将data返回
resolve(data);
})
.catch(error){
//失败调用reject函数
reject(error);
}
})
}
注意:这里两个ajax数据请求互不干扰。
2. 统一获取多个异步请求返回的数据:
//Promise.all()函数使用
testPromiseAll(){
let p1 = this.getAjax1(),
p2 = this.getAjax2();
Promise.all([p1,p2]).then( (dataArray) => {
console.log(dataArray);
})
}
p1,p2获取的是
promise.resolve
传入的结果,all函数的参数数组传递resolve
的数据,最后当promise.all
函数成功后then
函数中的参数就是我们想要的数据数组。
二、Promise.then
获取有先后关系的ajax数据结果
promise.then()后再调用promise.then()…
每一个promise对象都会返回自身。
更多推荐
已为社区贡献1条内容
所有评论(0)