Promise.all可以将多个Promise实例包装成一个新的Promise实例。同时,成功和失败的返回值是不同的,成功的时候返回的是一个结果数组,而失败的时候则返回最先被reject失败状态的值。
首先新建api文件夹,新建文件index.js和port.js
index.js封装公共求求方法和参数
port.js存放接口路径
index.js
postparams(url, data) {
return axios({
method: 'post',
url: handleUrl(url),
data: handleParams(data),
timeout: TIME_OUT_MS,
headers: {
'Content-Type': 'application/json; charset=UTF-8',
"Organization-Code": "js"
}
})
},
port.js
export default {
organList:'/organList', // 机构列表
}
页面
<script>
import axios from 'axios'
export default {
name: "organList",
data() {
return {
search: '',
formInline: {
orgName: '',
orgOnly: '',
orgStatus: ''
},
orgTable: {
tableList: [],
},
paginations: {
currentPage: 1, //当前页码
pageSize: 10, //条数
total: 0 //总数
}
}
},
mounted() {
this.getlist(this.paginations.currentPage, this.paginations.pageSize)
},
methods: {
//获取列表
getlist(page, limit) {
let reqData = {
page,
limit
};
var params = this.$api.postparams(this.$port.organList, reqData,)
var params2 = this.$api.postparams(this.$port.organList, reqData,)
Promise.all([params,params2]).then(res=>{
console.log(res)
});
}
}
};
</script>
Promise.all获得的成功结果的数组里面的数据顺序和Promise.all接收到的数组顺序是一致的,Promse.all在处理多个异步处理时非常有用,比如说一个页面上需要等两个或多个ajax的数据回来以后才正常显示,在此之前只显示loading图标。
Promise.race
Promse.race就是赛跑的意思,意思就是说,Promise.race([p1, p2, p3])里面哪个结果获得的快,就返回那个结果,不管结果本身是成功状态还是失败状态。