vue使用promise.all发送多个请求

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])里面哪个结果获得的快,就返回那个结果,不管结果本身是成功状态还是失败状态。

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
在JavaScript中,promise.all方法用于同时发送多个网络请求,并在所有请求成功返回后进行处理。与单独发送多个请求不同,promise.all可以保持请求的顺序。 使用promise.all发送网络请求的步骤如下: 1. 创建一个包含所有请求Promise数组。 2. 使用promise.all方法传入这个Promise数组。 3. 在promise.all的then方法中处理返回的结果。 以下是一个示例代码: ```javascript const promise1 = fetch('https://api.example.com/data1'); const promise2 = fetch('https://api.example.com/data2'); const promise3 = fetch('https://api.example.com/data3'); Promise.all([promise1, promise2, promise3]) .then(responses => { // 处理返回的结果 responses.forEach(response => { console.log(response.data); }); }) .catch(error => { // 处理错误 console.error(error); }); ``` 在上面的代码中,我们使用了fetch方法发送了三个网络请求,并将它们分别存储在promise1、promise2和promise3中。然后,我们使用Promise.all方法将这三个Promise对象作为参数传入。当所有网络请求成功返回时,then方法将触发,并将返回的结果作为参数传入。我们可以在then方法中对返回的结果进行处理。 需要注意的是,如果其中任何一个请求出错,整个promise.all将立即进入catch方法,不会等待其他请求返回结果。因此,promise.all适用于需要同时发送多个请求,但不需要考虑各个请求的先后顺序的情况。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [JS多个异步请求 按顺序执行next实现解析](https://download.csdn.net/download/weixin_38678796/13672428)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 33.333333333333336%"] - *2* [关于Promise使用](https://blog.csdn.net/vanora1111/article/details/125950992)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 33.333333333333336%"] - *3* [vue使用Promise.all发送多个请求](https://blog.csdn.net/qq_45695853/article/details/124190711)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 33.333333333333336%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值